如何比较两个二进制文件的差异?
我有程序的两个版本,版本1和版本2。在这两个版本之间,我只做了一些小的更改,但不幸的是,我没有定期备份,因此虽然我有版本2的源代码,但我只有版本1的二进制文件。我需要找出两个版本之间确切的更改内容。我尝试创建两个版本的objdump,然后使用diff查找更改,但这并不起作用,因为偏移量不同,因此diff认为几乎每行都发生了更改。
例如,在版本1中,一行可能是bgez v0,4074d0<daemonize+0xd4>
,而在版本2中则是bgez v0,4073d4<daemonize+0xd4>
。这些直接从转储文件中复制 - 您可以看到这两行执行相同的操作,但diff无法区分它们。文件太大,我不能手动检查每一行;如何检测功能更改,同时忽略偏移量的差异?