在执行此操作时,我不知道整个文件大小(pe 大小 + 附加数据大小)我的 PE 文件嵌入在其他 pe 文件中,所以我不知道它是否附加了数据,也不知道它的总大小。
我怎么知道PE文件是否附加了数据?
逆向工程
聚乙烯
二进制格式
2021-07-06 21:10:10
1个回答
据我所知,你不能。
虽然IMAGE_OPTIONAL_HEADER.SizeOfImage为您提供了映射到内存的整个 PE 文件的大小,但它不考虑附加数据。
附加的数据通常称为“覆盖”,工具通过检查文件包含的数据是否超过SizeOfImage字段所包含的数据来实际检测是否存在覆盖数据。
据我所知,问题更大——PE 加载器不会将覆盖数据加载到内存中。如果应用程序想要访问覆盖数据,它必须访问磁盘上的文件,如果您只进行内存转储,它肯定会缺少应用程序可能拥有的任何覆盖数据。