如何區分兩個二進制文件?比較兩個二進制文件
我有兩個版本的程序,版本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