从进程中检索基本模块的基址

时间:2016-08-22 22:43:22

标签: c++ windows memory memory-address

我一直在尝试读取某个地址的进程内存,我发现它位于偏移量+模块位置。基本上,我一直试图找出如何获取正在运行的进程的模块位置,但是我没有成功。为了做到这一点,我一直在尝试使用CreateToolhelp32Snapshot函数,但是我在使用Module32First的代码中收到错误,它返回false,我无法弄清楚问题是什么。有什么理由不断给我一个虚假的回报吗?

// CreateToolhelp32Snapshot(TH32CS_SNAPMODULE32, pid);
HANDLE snapshot_test = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE32, pid);

// Check if the handle is valid
if (snapshot_test != INVALID_HANDLE_VALUE) {

    // First module
    MODULEENTRY32 mod_entry;
    mod_entry.dwSize = sizeof(mod_entry);

    if (Module32First(snapshot_test, &mod_entry)) {
        do {
            cout << mod_entry.szModule << endl;
            cout << "test" << endl;
        } while (Module32Next(snapshot_test, &mod_entry));
    }
    else (cout << "module32first error");
}
else (cout << "snapshot error")

0 个答案:

没有答案