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
#include 
#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;
}

code007.zip Download

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.