1

我可以通过执行以下命令成功检索在我的进程中加载​​的模块的基地址:

MODULEINFO mInfo;
GetModuleInformation(GetCurrentProcess(),GetModuleHandle(L"moduleName"),&mInfo,sizeof(mInfo));
LPVOID baseAddress = mInfo.lpBaseOfDll;

但是现在如何检索该.text模块部分的开始和结束地址?

4

1 回答 1

2

应用程序和模块(也称为任何可执行代码)是基于 Microsoft 指定的所谓“可移植可执行文件”格式构建的。为了检索您想要的信息,您必须遍历内存中的逻辑表,并根据 PE 格式访问所需的成员。部分主机数据和代码。为了检索节的开头和结尾(例如.text),您必须检查节标题并检索它是否可执行。Matt Pietrek编写的标准文档必须被视为 PE 的“入门”。

于 2012-06-19T14:40:02.407 回答