c++ - 如何判断两个 exe 的代码是否相同?

标签 c++ windows visual-c++ compilation exe

有没有办法检测两个 EXE(从 VS.Net 2008 为 C++/MFC 编译)之间是否没有任何代码级更改,即为了知道没有语句更改。

当我的供应商向我发送一个 exe 时,这是出于合规性目的,表面上 self 们上次测试以来没有对代码进行任何更改。

是否有工具可以检查是否是这样?

干杯

最佳答案

您可以使用反汇编器将可执行文件反汇编回汇编,并与普通文本差异工具进行比较。

但即使这样也不是 100% 准确。编译过程不是无损的,在编译 C++ 代码时会丢失或不可逆地转换很多信息。

特别是,不同的编译器设置可以从完全相同的源生成截然不同的机器代码。不同的编译器,甚至是相同编译器的不同版本或服务包/修补程序级别,都可以从相同的源文件生成截然不同的机器代码。

另一个问题是,为什么他们甚至“表面上没有做任何更改”将 exe 发回给您?如果是这样,为什么不直接使用原来的那个呢?

关于c++ - 如何判断两个 exe 的代码是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605000/

相关文章:

c++ - 是否可以更改 'this' 关键字的类型?

linux - 管道命令在 Windows 中不起作用

c++ - 如何获得_bstr_t的长度

c++ - win32 api函数获取处理器的当前速度

c++ - 两行后 fstream 没有从文本文件中读取

c++ - 线程(C++ 中的并行计算)是否与优化级别 (gcc) 不兼容?

c++ - 什么是 `int foo::*bar::*` ?

java - 在windows app目录下本地安装jre

c++ - MSVC 名称修改

c++ - 我的 C++ 应用程序在哪些 Windows 版本和配置上运行?