我正在尝试.NET 中的内存访问。目前,我有一个托管程序启动一个 不受管理的 处理并检索 BaseAddress 它加载的模块之一(DLL)。我想做的是以某种方式读取加载模块的 PE 标头,以便稍后可以检索其导出的地址。

不幸的是,我找不到任何关于此的好信息。有任何想法吗?

有帮助吗?

解决方案

是 PE 文件格式的一个很好的起点。

您可以 P/调用 读取进程内存 您必须从基地址将标头复制到您的进程中。您需要将读取的内存解析到各个 PE 标头中。第一个标头是 IMAGE_DOS_HEADER, ,这将指向您 IMAGE_NT_HEADERS. 。然后您可以使用 IMAGE_OPTIONAL_HEADER 在 IMAGE_NT_HEADERS 中查找的位置 IMAGE_EXPORT_DIRECTORY 在二进制文件中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top