V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
co3site
V2EX  ›  C

这个问题折磨了好几天

  •  
  •   co3site · 2019-07-19 20:18:49 +08:00 · 1951 次点击
    这是一个创建于 1986 天前的主题,其中的信息可能已经有所发展或是发生改变。
    #include <iostream>
    #include <windows.h>
    using namespace std;
    
    int main()
    {
    	STARTUPINFO si = {0};
    	si.cb = sizeof(STARTUPINFO);
    
    	PROCESS_INFORMATION pi;
    
    	TCHAR cmdline[] = TEXT("C:\\Program Files\\Internet Explorer\\iexplore.exe");
    
            //以挂起形式创建进程
    	BOOL status = CreateProcess(NULL,  cmdline,  NULL,  NULL, FASLE,  CREATE_SUSPENDED, NULL, NULL, &si, &pi);
    
    	if (status)
    	{
    		//获取创建进程的主线程 context
    		CONTEXT context = {0};
    		context.ContextFlags = CONTEXT_FULL;
    		GetThreadContext(pi.hThread, &context);
    
    		//获取程序入口点( ImageBase + OEP )
    		cout << "Entry Point(OA):" << hex << context.Eax << endl;
    
    		//从 PEB 中获取 ImageBase	
    		CHAR* baseAddress = (CHAR*)(context.Ebx + 8);
    		CHAR buffer[8] = { 0 };
    		ReadProcessMemory(pi.hProcess, baseAddress, buffer, 4, NULL);
    		cout << "ImageBase:" << hex << buffer << endl;
    
    		//恢复进程(主线程)
    		ResumeThread(pi.hThread);
    
    		//关闭句柄
    		CloseHandle(pi.hThread);
    		CloseHandle(pi.hProcess);
    	}
    	return 0;
    }
    

    如上,是以挂起的形式创建的进程,但就是获取不到相应的挂起主线程的 CONTEXT 结构数据,看了好多博客都是可以这样获取的呀,难道是我最近太衰了吗,连编译器都要与我为难一番,(′д` )…彡…彡
    测试环境:WIN10 + VS2019

    5 条回复    2019-08-12 17:05:40 +08:00
    co3site
        1
    co3site  
    OP
       2019-07-19 20:36:27 +08:00 via Android
    @livid 请问我这个账号什么时候才能够恢复正常,就因为之前说了一件人尽皆知的新闻吗?现在真正想发帖询问都不行了
    xiofee
        2
    xiofee  
       2019-07-19 22:12:24 +08:00
    ```cpp
    cout << "ImageBase:" << hex << *(uint32_t*)(buffer) << endl;
    ```
    co3site
        3
    co3site  
    OP
       2019-07-19 22:21:54 +08:00 via Android
    @xiofee 不是这个问题,是整个 CONTEXT 拿不到数据
    xuddk727
        4
    xuddk727  
       2019-07-30 10:13:21 +08:00
    win10 的话多半是权限问题,可 getlasterror 查看原因
    v2byy
        5
    v2byy  
       2019-08-12 17:05:40 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1133 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.