#1 楼
那里有很多PE / Header自卸车,但据我所知,没有一个适合对图像进行审核的设备。他们的目标通常是信息的提取和显示,而不是验证。最好的方法是用您喜欢的瑞士军刀语言编写一个小程序或脚本,以验证输出图像的完整性,在定义规则的部分中重点关注灵活性和清晰度。在许多语言中,都可以调用库,例如python中的pefile。
在网络上没有地方可以全面收集与PE图像有关的所有规则。许多规则不是由Windows加载程序的当前版本强制执行的,或者至少不是一致的,即使它们在MSDN或PE COFF规范中提到过。因此,许多包装者和保护者不受惩罚地违反了某些现有规则。暂时。
使用相同的标记,如果您的输出映像恰好在您当前的Windows版本上运行,则不能保证它将在具有不同版本,补丁程序级别或位数的另一Windows版本上运行。不管是在WINE还是ReactOS上,什么都不管。 -除了标题信息的正确性之外,数据目录和节表还包括图像校验和和文件/节对齐。此外,对于某些任务(例如计算校验和),您可以调用Microsoft imagehlp.dll中的函数。
为了快速查看PE,您可以始终使用Windows附带的Microsoft dumpbin实用程序SDK(至少是编译器附带的SDK,即早于当前版本8.1的SDK)和Visual Studio的许多版本,包括免费的Community Edition。我还发现Daniel Pistelli的免费PE Insider非常方便,CFF Explorer套件也是免费的。
附注:可能是记录PE结构现实情况(相对于理论而言)的最佳资源是corkami的PE Wiki。当然,这是我见过的最全面的PE文档... ReversingLabs已编译了一个名为Undocumented PECOFF的文档,该文档很好地概述了实际需求与理论。尽管他们关注安全隐患,但是pdf还是使PE正常工作的绝佳资源。
评论
您想使用这种工具吗?我想(使用Python),我认为这对社区非常有帮助。