exe/dlls 的 MD5 重建后不同
MD5 of exe/dlls are different after rebuild
我想知道我是否可以在新构建后使 MD5 与 dll/exe 一致?
每次我重建我的项目并使用工具“Microsoft File Checksum Integrity Verifier”获得不同的 MD5。
我发现了一些关于这个问题的 articals,有人说这是由于 PE32 文件头部的时间戳。我对此一无所知。请问有人能帮忙吗?提前致谢!
下面是我如何得到 MD5 和。 MD5Compare.exe 完全相同,只是它们不是在同一版本中创建的。
C:\Users\Administrator>fciv.exe D:\Lab\MD5Compare\MD5Compare\bin\Debug -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 -wp MD5
Compare.exe
//
// File Checksum Integrity Verifier version 2.05.
//
cf5caace5481edc79fd7bf3e99b48a5b MD5Compare.exe
不,校验和必须不同,因为文件中的数据实际上已经改变,即使没有代码 - 在编译中没有产生功能差异,没有向程序集添加新功能 - 自时间戳一方面,构建会有所不同。
因此您需要在此处考虑元数据,以及它如何 stored/affects 文件系统上文件的属性,以及完整性检查。
请考虑 MD5 应该做什么:它应该确保没有人在二进制级别更改您的文件。它应该确保您的文件完全相同。让多个构建(不同的文件)具有相同的 MD5 校验和会破坏使用 MD5 的目的。
如果您可以在校验和保持不变的情况下更改文件,那么黑客也可以。
我想知道我是否可以在新构建后使 MD5 与 dll/exe 一致?
每次我重建我的项目并使用工具“Microsoft File Checksum Integrity Verifier”获得不同的 MD5。
我发现了一些关于这个问题的 articals,有人说这是由于 PE32 文件头部的时间戳。我对此一无所知。请问有人能帮忙吗?提前致谢!
下面是我如何得到 MD5 和。 MD5Compare.exe 完全相同,只是它们不是在同一版本中创建的。
C:\Users\Administrator>fciv.exe D:\Lab\MD5Compare\MD5Compare\bin\Debug -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 -wp MD5
Compare.exe
//
// File Checksum Integrity Verifier version 2.05.
//
cf5caace5481edc79fd7bf3e99b48a5b MD5Compare.exe
不,校验和必须不同,因为文件中的数据实际上已经改变,即使没有代码 - 在编译中没有产生功能差异,没有向程序集添加新功能 - 自时间戳一方面,构建会有所不同。
因此您需要在此处考虑元数据,以及它如何 stored/affects 文件系统上文件的属性,以及完整性检查。
请考虑 MD5 应该做什么:它应该确保没有人在二进制级别更改您的文件。它应该确保您的文件完全相同。让多个构建(不同的文件)具有相同的 MD5 校验和会破坏使用 MD5 的目的。
如果您可以在校验和保持不变的情况下更改文件,那么黑客也可以。