这个问题在这里已经有了答案:
What's this extra bytes?
(1 个回答)
11 个月前关闭。
最近,我使用十六进制编辑器分析了一些 Windows 可执行文件。 PE 头从地址 0x100 开始,因此在 PE 镜像实际开始之前有 256 字节的数据。前 256 个字节:
我知道以下有关文件结构的信息
所以我知道前 128 个字节是做什么用的。我的问题是:接下来的 128 个字节 (0x80 - 0xFF) 用于什么? (PE 图像在它们之后的 0x100 处开始。)
最佳答案
就是所谓的无证"Rich header" .它是由 Microsoft 链接器插入的弱加密数据块,指示使用了哪些 Microsoft 工具来生成可执行文件。它包括来自链接的目标文件的版本信息,因此包括有关使用了哪些编译器、汇编器和其他工具的信息。
解码 Rich
的 Rich header 搜索标记,然后获取后面的 32 位加密 key 。然后从 Rich
向后工作标记,将 key 与存储在那里的 32 位值进行异或,直到找到解码的 DanS
标记。在这两个标记之间将是一个 32 位值对的列表。该对的第一个值标识所使用的 Microsoft 工具,第二个值指示使用该工具创建的链接目标文件的数量。工具 id 值的高 16 位部分表示它是什么类型的工具,低 16 位部分标识工具的构建版本。
关于windows - PE 文件中的 DOS stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65168544/