exe/dlls的MD5在重建后有所不同

本文关键字:重建 有所不同 MD5 dlls exe | 更新日期: 2023-09-27 18:01:15

我想知道是否可以在新的构建后使dll/exe的MD5一致?

每次我重新构建我的项目并使用工具"Microsoft文件校验和完整性验证程序"获得不同的MD5时。

我发现了一些关于这个问题的文章,有人说这是由于PE32文件头上的时间戳。我对此一无所知。有人能帮忙吗?提前谢谢!

以下是我如何获得MD5金额。MD5Compare.exe完全相同,只是它们不是在同一内部版本中创建的。

C:'Users'Administrator>fciv.exe D:'Lab'MD5Compare'MD5Compare'bin'Debug'2 -wp MD5
Compare.exe
//
// File Checksum Integrity Verifier version 2.05.
//
5cdca6373aca0e588e1e3df92a1d5d0a MD5Compare.exe
C:'Users'Administrator>fciv.exe D:'Lab'MD5Compare'MD5Compare'bin'Debug'2 -wp MD5
Compare.exe
//
// File Checksum Integrity Verifier version 2.05.
//
cf5caace5481edc79fd7bf3e99b48a5b MD5Compare.exe

exe/dlls的MD5在重建后有所不同

不,校验和必须不同,因为文件中的数据实际上已经更改,即使没有代码-编译中没有功能差异,程序集中没有添加新功能-因为构建的时间戳会不同。

因此,您需要在这里考虑元数据,以及它是如何存储/影响文件系统上文件的属性,从而进行完整性检查的。

请考虑MD5应该做什么:它应该确保没有人在二进制级别上更改您的文件。它应该确保您的文件完全相同。让多个构建(不同的文件(具有相同的MD5校验和将无法实现MD5的目的。

如果你可以在校验和不变的情况下更改文件,黑客也可以。