如何读取内存中加载的模块的 PE 标头?
-
21-09-2019 - |
题
我正在尝试.NET 中的内存访问。目前,我有一个托管程序启动一个 不受管理的 处理并检索 BaseAddress
它加载的模块之一(DLL)。我想做的是以某种方式读取加载模块的 PE 标头,以便稍后可以检索其导出的地址。
不幸的是,我找不到任何关于此的好信息。有任何想法吗?
解决方案
这 是 PE 文件格式的一个很好的起点。
您可以 P/调用 读取进程内存 您必须从基地址将标头复制到您的进程中。您需要将读取的内存解析到各个 PE 标头中。第一个标头是 IMAGE_DOS_HEADER, ,这将指向您 IMAGE_NT_HEADERS. 。然后您可以使用 IMAGE_OPTIONAL_HEADER 在 IMAGE_NT_HEADERS 中查找的位置 IMAGE_EXPORT_DIRECTORY 在二进制文件中。
不隶属于 StackOverflow