#includecode007.zip Download#include int main(int argc, char **argv) { if(argc != 2) { puts("usage: inject"); return 1; } DWORD pid = (DWORD)atoi(argv[1]); HANDLE hproc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pid); // check printf("pid = %i\n", pid); PVOID addr = VirtualAllocEx( hproc, NULL, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); //check printf("addr = %.8x\n", addr); WriteProcessMemory(hproc, addr, "hook.dll", 9, NULL); //check HANDLE hthread = CreateRemoteThread( hproc, NULL, 0, (LPTHREAD_START_ROUTINE) GetProcAddress(GetModuleHandle("kernel32"), "LoadLibraryA"), addr, 0, NULL); // check CloseHandle(hthread); CloseHandle(hproc); return 0; }
DLL Injection – przykładowy kod
Jest to przykładowy kod który łatwo można wykorzystać do napisania loadera cheatów do różnych gier.
Służy on do załadowania naszej biblioteki ( czyli tak naprawdę naszego kodu ) w kontekście innego wątku. Użyte jest do tego allokowanie i zapisanie pamięci oraz odpalanie nowych wątków.
Jest to dość łatwe podejście i też łatwe do wykrycia ale jednak można się dzięki temu dużo nauczyć.
Najważniejsza część kodu