建立程序除了用 create_new_console,還可以用掛起的方式建立,create_suspended
// 掛起方式建立程序
#include "stdafx.h"
#include int main(int argc, char* ar**)
; si.cb = sizeof(si);
process_information pi;
char szpath[max_path] = "c:\\notepad.exe";
createprocess(null, szpath, null, null, false, create_suspended, null, null, &si, &pi);
// 獲取執行緒上下文
context context;
context.contextflags = context_full;
getthreadcontext(pi.hthread, &context);
// 獲取入口點
dword dwentrypoint = context.eax;
printf("入口點: %x\n", dwentrypoint);
// 獲取imagebase
char *baseaddress = (char *)context.ebx + 8;
char szbuffer[256] = ;
readprocessmemory(pi.hprocess, baseaddress, szbuffer, 4, null);
// 恢復執行緒
resumethread(pi.hthread);
getchar();
return 0;}
執行結果
掛起的方式建立程序,獲取ImageBase OEP
bool winapi getthreadcontext in handle hthread,inout lpcontext lpcontext 引數一 指定掛起的執行緒的控制代碼 引數二 執行緒上文結構體 第一步 已掛起的方式建立乙個程序 context ct ct.contextflags co...
Windows掛起程序
window系統並沒有公開提供掛起程序的api,但提供了suspendthread,對乙個程式的掛起,即對該程式所有的執行緒的掛起。首先引用標頭檔案 include windows標頭檔案 include windows程序與執行緒快照需要通過建立系統程序與執行緒的快照來停止對應程序的執行緒。1.根...
python 掛起 python 請求程序掛起
我正在使用請求獲取url,例如 while true try rv requests.get url,timeout 1 dosth rv except socket.timeout as e print e except exception as e print e 執行一段時間後,它會退出工作狀...