#include #include #include #include #include #include #define WIN32_LEAN_AND_MEAN #define CREATE_THREAD_ACCESS (PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ) BOOL Inject(DWORD pID, const char* DLL_NAME); DWORD GetTargetThreadIDFromProcName(const char* ProcName); using namespace std; int main(int argc, char* argv[]) { // process name DWORD pID = GetTargetThreadIDFromProcName("javaw.exe"); // dll name char buf[MAX_PATH] = { 0 }; GetFullPathName("Noise0.5.dll", MAX_PATH, buf, NULL); // Noise0.5.dll yazan yere kendi dll adınızı yazabilirsiniz // inject if (!Inject(pID, buf)) { system("Color 04"); printf("Dll inject edilemedi oyun kapaliysa oyunu ac!"); // İnject başarısız } else { system("Color 0A"); printf("Dll inject edildi eger oyun icinde sol uste yazilar gelmediyse oyuna gir ve f11'e bas\nyazilar bazen buga girebiliyor!"); // İnject başarılı } _getch(); return 0; } BOOL Inject(DWORD pID, const char* DLL_NAME) { HANDLE Proc; HMODULE hLib; char buf[50] = { 0 }; LPVOID RemoteString, LoadLibAddy; if (!pID) return false; Proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID); if (!Proc) { sprintf(buf, "OpenProcess() başarısız: %d", GetLastError()); printf(buf); return false; } LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA"); RemoteString = (LPVOID)VirtualAllocEx(Proc, NULL, strlen(DLL_NAME), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory(Proc, (LPVOID)RemoteString, DLL_NAME, strlen(DLL_NAME), NULL); CreateRemoteThread(Proc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, (LPVOID)RemoteString, NULL, NULL); CloseHandle(Proc); return true; } DWORD GetTargetThreadIDFromProcName(const char* ProcName) { PROCESSENTRY32 pe; HANDLE thSnapShot; BOOL retval, ProcFound = false; thSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (thSnapShot == INVALID_HANDLE_VALUE) { printf("Hata"); return false; } pe.dwSize = sizeof(PROCESSENTRY32); retval = Process32First(thSnapShot, &pe); while (retval) { if (StrStrI(pe.szExeFile, ProcName)) { return pe.th32ProcessID; } retval = Process32Next(thSnapShot, &pe); } return 0; }