我一直在尝试读取某个地址的进程内存,我发现它位于偏移量+模块位置。基本上,我一直试图找出如何获取正在运行的进程的模块位置,但是我没有成功。为了做到这一点,我一直在尝试使用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")