如何比较两个exe文件一个是从现在的旧代码和几个月前构建的现有exe构建的?

时间:2009-08-18 21:19:04

标签: .net

我希望比较两个exe文件。我应该确保服务器上的现有exe是我现在的代码的产物。

我正在使用

>dumpbin /rawdata oldfile.exe > oldfile.txt
>dumpbin /rawdata newfile.exe > newfile.txt
>fc /b oldfile.txt newfile.txt  //compare them like this
>windiff  oldfile.txt newfile.txt // or this 

我猜他们应该只根据时间戳而不同。这些是来自visual studio 2003的VB.net exes。

有什么想法?

感谢。

4 个答案:

答案 0 :(得分:5)

如果您要做的就是验证二进制文件是否相同,那么您可以使用md5sum或sha1sum等实用程序来有效地散列二进制文件。如果每个二进制文件的哈希值相同,则文件可能相同。

答案 1 :(得分:3)

Here's Reflector的加载项,可让您比较2个程序集之间的代码。

答案 2 :(得分:3)

我总是使用fc和/b选项来比较两个exes(或任何二进制文件)。

答案 3 :(得分:0)

可执行文件内部有日期戳。 10年前写了一个PASS / FAIL程序用于构建备份过程,但从那以后丢失了代码。虽然容易做到。

我记得在检查构建日期戳位置的标题并忽略该地址后,它是一个直接的字节到块比较。