从二进制内容中识别7z SFX

如何从二进制内容中识别7z SFX(自解压EXE)文件,是否有任何偏移开始或要查找的特定字节或两者?

非常感谢

谷歌是你的朋友。 搜索“7zip header”后的第一个结果。 文档说这是7zip签名:

BYTE kSignature[6] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; 

您应该读取文件的前6个字节。 如果该6字节序列与上面的kSignature相同,则该文件应为7z。

编辑 :我一直在尝试使用GNU / Linux上的7z(实际上包装SFX ELF文件,而不是PE)。 我发现,在最后一块数据中,7z签名实际存在。 Hexdump生成一个转储到字节数0x00057960的转储,签名位于:

 0x000578f0: 37 7a bc af 27 1c 

0x37和0x7a分别为’7’和’z’。 因此,在这种情况下,签名的偏移量为EOF – 112字节。

我建议你下载一个hex编辑器,创建一个SFX文件,并在每个创建SFX 7z的应用程序中测试这个偏移是否相同。 请记住,我已经在GNU / Linux上对此进行了测试,因此在Windows上可能会有所不同。

    Interesting Posts