Skip to content

UnknownDetectionParty/UDP-CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unknown Detection Party

A Minecraft Cheat in C++

Nothing big, just a small intro for (s)kids wanting to make C++ injection clients (and no, this doesn't involve any Java code)

The code is a mess, I already know, so don't bother ripping into me. I don't like C++, I don't aspire to be good in C++, I just do what works, and I never intend to make anything commercial either, so it really doesn't matter to me

Happy skidding!

Getting Started With a Fresh Project

You can either follow the text instructions below or follow them via video.

  • If you haven't already, install Visual Studio (If you already have a x64 C++ compile setup, just use that, but the next few steps will be for VS)
  • Start VS, and create a new project. Make sure to select Visual C++ >> Windows Desktop >> Dynamic-Link Library (DLL) as the project type. Give it a name and location, and create it
  • You can probably just delete the file it creates named <your_project_name>.cpp as you'll either create another later, or do everything in the dllmain.cpp file
  • Now that you have a base location for your project, locate your JDK installation (Somewhere around C:\Program Files\Java\jdk1.8.0_xxx\)
  • Locate the jvm.lib library inside the JDK installation (.\lib\jvm.lib)
  • Locate the jvm.dll dll inside the JDK installation (.\jre\bin\jvm.dll)
  • Copy the two located files into your project's code directory (.\Project Name\Project Name\, it should be the place where all the .cpp and .h files are)
  • Head back to VS, click Build >> Properties in the toolbar at the top
  • Switch the "Platform" to (if it's not already) x64 since Minecraft runs in 64bit, and your DLL just won't work otherwise
  • In the left panel, open VC++ Directories. It should be the third one down (unless I'm just special)
  • Click in the first entry field: Executable Directories, and click the dropdown on the right, then <Edit...>
  • Click the first icon in the top left to create a new entry (do this twice, once after the first)
  • For the first one, put the following: <JDK install>\include, and for the second: <JDK install>\include\win32
  • Now, in the panel on the left, open the Linker node, and open Input.
  • Just like the dependencies, click the Additional Dependencies entry field, click the dropdown, edit, and then enter jvm.lib and click ok
  • Next, in the dllmain.cpp file, put the following:
    //Required libraries
    #include <Windows.h>
    #include <iostream>
    
    /*
    	Handle the base injection in the newly created thread (if injection was successful)
    	Allocates a new console window to the application and routes stdin, stdout, and
    	stderr to the console. This prevents any debugging being mixed in with Minecraft's
    	output window
    */
    void inject() {
    	AllocConsole();
    	FILE* fIn;
    	FILE* fOut;
    	freopen_s(&fIn, "conin$", "r", stdin);
    	freopen_s(&fOut, "conout$", "w", stdout);
    	freopen_s(&fOut, "conout$", "w", stderr);
    
    	std::cout << "Injection Successful!" << std::endl;
    }
    
    /*
    	Entry point function for the DLL
    	If it has just been attached, create a new process thread and run the "inject" function
    */
    BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
    	if (fdwReason == DLL_PROCESS_ATTACH)
    		CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)inject, nullptr, 0, nullptr);
    	return TRUE;
    }
  • Change the compile mode at the top of Visual Studio to x64, and build the DLL (Ctrl + Shift + B)

You should now have a built DLL to inject straight into Minecraft, and watch the magic unfold!

Disclaimer

The code is shit, there's countless things I could do to improve the functionality (including toggle for the aimbot), but I really couldn't care less, so don't bother saying it's shit cause I'll just screenshot this disclaimer and link you to Chum Drum Bedrum

Releases

No releases published

Packages

No packages published