如何解决NSIS exe内部字节和SHA26的区别
当我在不更改代码的情况下运行makeInstaller时,字节大小或多或少地变化了4-5,这会影响生成的exe上的SHA26,从而引起完整性问题。这里有什么想法吗?
Processed 1 file,writing output (x86-ansi):
Output: "C:\Users\build\setup.exe"
Install: 4 pages (256 bytes),2 sections (1 required) (4144 bytes),681 instructions (19068 bytes),322 strings (5999 bytes),1 language table (302 bytes).
Uninstall: 3 pages (256 bytes),1 section (2072 bytes),312 instructions (8736 bytes),152 strings (2665 bytes),1 language table (286 bytes).
Datablock optimizer saved 861 bytes (~0.0%).
Using zlib compression.
EXE header size: 47104 / 37888 bytes
Install code: 5696 / 28161 bytes
Install data: 37940628 / 96426788 bytes
Uninstall code+data: 49617 / 56047 bytes
CRC (0xD494AC91): 4 / 4 bytes
Total size: 38043049 / 96548888 bytes (39.4%)
解决方法
Windows二进制文件不是确定性的。元数据包含有关程序生成时间的时间信息。您可以使用一些十六进制编辑和一些有关Windows如何喜欢其程序标题的知识来手动更改元数据,但是如果您要进行确定性编译,则您将不遗余力地实现这一目标……或更具体地说如果您想将SHA-256与他们的版本进行比较,那么原始开发者就是这样做的人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。