[C++ Source]Code Injector

03/21/2010 20:39 Tyrar#1
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):
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;
}
have fun ;)
03/22/2010 06:38 flo8464#2
Also...0 Fehlerbehandlung und hat mit C++ auch nicht sonderlich viel am Hut .. ;)
03/22/2010 08:15 Tyrar#3
Quote:
Originally Posted by flo8464 View Post
Also...0 Fehlerbehandlung und hat mit C++ auch nicht sonderlich viel am Hut .. ;)
fehlerbehandlung hab ich eh selten drin, ich gehe davon, dass die grossen programmier fails erspart bleiben XD
und es ist eben aus meinen .cpp dateien gekommen XD
03/28/2010 16:23 SpawN_#4
Danke