2

根据这篇文章http://msdn.microsoft.com/en-us/library/ms809762.aspx?ppud=4
我们可以用自定义名称命名 PE 部分。
因此,在一个 PE 文件中,它的创建者已经用他自己的名称替换了部分名称,
现在如果“.pdata”部分不再称为“.pdata”,所以我无法通过它的名称找到它。
我怎样才能找到“.pdata”?

4

1 回答 1

3

正确,根据Windows Portable Executable 规范和其他来源(如 Matt Pietrek),部分名称是为人类制作的!通常,编译器为特定类型的部分内容设置“标准”名称(例如,代码的“.text”等)。但是,加载程序会完全忽略这些名称。可以使用不同的方法(使用 pragma 或其他工具,例如 Peid 等)修改这些部分的名称。感兴趣的部分 (.pdata) 与 IMAGE_DIRECTORY_ENTRY_EXCEPTION 目录相关联。

要找到重命名后的 .pdata 部分(顺便说一句,指示图像是 64 位),您需要做的就是搜索 IMAGE_DIRECTORY_ENTRY_EXCEPTION 目录,并根据其内容检索它所在的部分(您可以对所有目录执行此操作)。

于 2013-01-20T09:42:51.623 回答