现在,我正在开发一个拆包器,并已进入测试阶段。有时我会收到一条消息,指出解压缩后的文件是无效的Win32可执行文件,但它没有提供信息。 t like”文件。这样我就可以轻松地检测到解压缩脚本中的错误。

评论

您想使用这种工具吗?我想(使用Python),我认为这对社区非常有帮助。

#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正常工作的绝佳资源。