c/c++开发分享从二进制内容中识别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上可能会有所不同。

      以上就是c/c++开发分享从二进制内容中识别7z SFX相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/549655.html

      发表评论

      邮箱地址不会被公开。 必填项已用*标注