hier habt ihr dann mal den source von meiner injection methode!
sie kann eine funktion in den mainthread eines prozesse injizieren, und ausführen (gut geeignet um eine dll zu laden).
hier habt ihr den code (geschnitten):
have fun ;)
sie kann eine funktion in den mainthread eines prozesse injizieren, und ausführen (gut geeignet um eine dll zu laden).
hier habt ihr den code (geschnitten):
Code:
__declspec(naked) void injStub()
{
__asm
{
push 0xDEADBEEF
pushfd
pushad
call 0xDEADBEEF
popad
popfd
ret
}
}
bool InjectCode(HANDLE hProc, HANDLE hThread, LPVOID lpCode, SIZE_T szCodeLen)
{
void* stub = VirtualAllocEx(hProc,NULL,sizeof(&injStub),MEM_COMMIT,PAGE_EXECUTE_READWRITE);
void* code = VirtualAllocEx(hProc,NULL,szCodeLen,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
memcpy(stub,&injStub,sizeof(&injStub));
memcpy(code,lpCode,szCodeLen);
SuspendThread(hThread);
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hThread,&ctx);
ctx.ContextFlags = CONTEXT_CONTROL;
DWORD oldEIP = ctx.Eip;
ctx.Eip = (DWORD)stub;
memcpy((void *)((DWORD)stub+1),&oldEIP,4);
memcpy((void *)((DWORD)stub+8),code,4);
SetThreadContext(hThread,&ctx);
ResumeThread(hThread);
CloseHandle(hThread);
CloseHandle(hProc);
return true;
}