天天看點

挂起的方式建立程序,擷取ImageBase OEP

BOOL WINAPI GetThreadContext(

In HANDLE hThread,

Inout LPCONTEXT lpContext

);

參數一:指定挂起的線程的句柄

參數二:線程上文結構體

//第一步 已挂起的方式建立一個程序 
CONTEXT ct;
ct.ContextFlags=CONTEXT_FULL;   //一定要指定标志不然不會擷取相應的值
GetThreadContext(hThread,&ct);
DWORD dwEntryPoint=ct.Eax;         //eax裡存放的就是程式入口點
//擷取ImageBase
char* BaseAddress=(char*)ct.Ebx+8;
TCHAR szBuffer[256]={0};
ReadProcessMemory(hProcess,BaseAddress,szBuffer,4,NULL);