首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断两个exe代码是否相同?

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

Stack Overflow用户
提问于 2010-04-09 11:50:40
回答 7查看 2.2K关注 0票数 5

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

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

有没有工具可以确认这一点?

干杯

EN

回答 7

Stack Overflow用户

发布于 2010-04-09 11:53:54

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

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

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

另一个问题是,为什么他们“表面上没有做任何修改”就把exe送回给你了?如果是这样的话,为什么不直接使用原来的版本呢?

票数 4
EN

Stack Overflow用户

发布于 2010-04-09 11:55:03

您始终可以对可执行文件执行MD5sum。这不会告诉您它们在逻辑上是等价的还是不同的,只是简单地说它们之间存在差异。

我不确定这是否解决了您的问题,因为您可能正在寻找一个逻辑比较工具。

票数 2
EN

Stack Overflow用户

发布于 2010-04-09 11:59:05

自动化您的测试,以便可以快速重新运行测试。

尽管这只是一个小小的声明,但却是一件大事。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2605000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档