c++ - 比较从同一确切源构建的两个可执行文件的校验和

标签 c++ c visual-studio checksum

我有一个关于使用校验和使用 visual studio 编译的可执行文件验证的问题: 如果我从 src 构建一个项目,我最终会得到一个可执行文件,称为 exec1.exe,其中包含一些元数据。 如果我稍后重建完全相同的 src,我会得到另一个可执行文件,比如 exec2.exe,它也有自己的元数据部分。

如果我为这两个文件中的每一个创建一个校验和,它们就会不同,因为这两个文件之间的元数据信息是不同的。 有谁知道在我对文件进行校验和时绕过元数据的方法,这样无论元数据如何,对两个文件进行校验和都会产生相同的校验和值?或者如何编译二进制文件,这样只要 src 相同,我就可以得到相同的可执行文件?

预先感谢您的输入, 问候

最佳答案

There is no guarantee that Visual C++ will generate the same binary image when building the same source files on successive builds.校验和不打算以这种方式使用,经过一些研究,这似乎很难实现。相反,诸如 this kb article 之类的资源可以帮助比较文件。

校验和通常用于查找发送/存储数据导致的错误,而不是比较可执行文件的版本/构建。

关于c++ - 比较从同一确切源构建的两个可执行文件的校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651290/

相关文章:

c++ - 与 C++ 中的简单数学混淆

c++ - boost::make_function_output_iterator 的逆函数

c - 理解算法的一部分

winforms - 如何避免在* .designer.cs和* .resx中进行不必要的更改?

c++ - QT中QAudioInput bufferSize()和bytesReady()的关系

c++ - SDL iOS 禁用事件泵

c - 如何将字符更改为整数?

c - 使用 OpenMP 可能会出现哪些问题?

python - Visual Studio for python 中的 ModuleNotFoundError

visual-studio - 使用宏附加到 IIS7?