如何区分两个二进制文件?比较两个二进制文件
我有两个版本的程序,版本1和版本2.我做了两个版本之间的少量变化,但不幸的是没有定期备份,所以虽然我已经得到了版本2的源代码,我只有版本1的二进制文件。我需要了解两个版本之间的变化。我已经尝试创建两个版本的objdump,然后使用diff来查找更改,但这不起作用,因为偏移量不同,所以diff差不多认为每条线都发生了更改。
例如,一条线可能是bgez v0,4074d0<daemonize+0xd4>
版本1和bgez v0,4073d4<daemonize+0xd4>
在第2版。这些都是直接从转储文件复制的 - 你可以看到两行做同样的事情,但差异不能区分它们。这些文件对我来说太大了,无法手动检查每一行;如何检测功能更改,同时忽略偏移量的差异?
这听起来像是一个现实世界的NP完全问题。 ;-) – 2011-01-24 16:48:25
不是NP完整的,因为它可以通过DFA解决。 – Benubird 2011-01-25 09:19:02
NP和DFA的含义是什么? – 2016-02-11 14:45:15