我有兩個文件應該從相同的源版本生成。其中一個文件被剝離。 可以比較文件的原始可執行部分以確定它們是否相同? 也可以在目標文件上完成(特別是在.ko linux內核模塊上)?比較可執行文件或目標文件
問候
我有兩個文件應該從相同的源版本生成。其中一個文件被剝離。 可以比較文件的原始可執行部分以確定它們是否相同? 也可以在目標文件上完成(特別是在.ko linux內核模塊上)?比較可執行文件或目標文件
問候
您可以運行objdump -x <file>
列出計劃的部分,然後objcopy -j <section> <file> <out>
提取的部分並加以比較。
你想跳過調試節和檢查.text
喜歡,.data
...
我會嘗試使用
objdump -d file1>a
objdump -d file2>b
diff a b
,或者如F.Hauri建議,
diff <(objdump -d file1) <(objdump -d file2)
-d選項反彙編文件的可執行部分。
但是,不同的編譯器總是會生成不同的字節,因此也就是彙編,代碼。 此外,我不確定可執行文件中的目標文件的順序,如果有多個。 對於使用應該工作的相同編譯器編譯的目標文件。
檢查兩個文件是否相同的簡單方法是md5。您可以通過檢查文件的md5sum:
$ md5sum file.txt
對於許多文件,這樣做:
$ md5sum *
使用[標籤:慶典],你coud寫:'DIFF <(objdump的-d file1)<(objdump -d file2)'而不必使用臨時文件! ;-) – 2015-03-02 11:08:12
試一下'diff -y ... |在一個寬廣的控制檯中減少「S」 – 2015-03-02 11:10:28