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

yum*_*ous 5 c++ windows exe compilation visual-c++

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

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

有没有工具可以检查是否如此?

干杯

Dea*_*ing 4

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

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

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

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