本篇介紹 Linux 比較二進制檔案差異的工具,Linux 比較二進制檔案差異的工具分為這幾部份:
- xxd 搭配 diff
- vimdiff
- hexdump 搭配 diff
- hexdiff
- dhex
xxd 搭配 diff
假如我們要以二進制格式比較兩個 a.bin 和 b.bin 檔案的差異,簡單的方法是先使用 xxd
指令將 bin 檔案轉換為文字格式,這裡示範為 .hex 檔案,實際上原理就是用 printf("%02x")
將二進制檔案按 byte 輸出為可讀的資料,接著再使用diff
指令這兩個 hex 檔案的差異,diff
指令只會印出兩個檔案不同之處的數值,xxd 搭配 diff 用法範例如下,1
2
3xxd a.bin > a.hex
xxd b.bin > b.hex
diff a.hex b.hex
結果如下圖,
不想另外建立兩個檔的話,可以使用下列一行指令,1
diff <(xxd a.bin) <(xxd b.bin)
vimdiff
承上例,這邊介紹使用 vimdiff 比對 xxd 的輸出結果,1
vimdiff <(xxd a.bin) <(xxd b.bin)
結果如下圖,
當然你也可以使用 gvimdiff。
hexdump 搭配 diff
hexdump 也是將檔案 dump 出來的工具,hexdump 搭配 diff 用法如下,1
2
3hexdump -C -v a.bin > a.txt
hexdump -C -v b.bin > b.txt
diff a.txt b.txt
不想另外建立兩個檔的話,可以使用下列一行指令,1
diff <(hexdump -C -v a.bin) <(hexdump -C -v b.bin)
結果如下圖,
hexdiff
在 Ubuntu 下安裝 hexdiff 的方式為:1
sudo apt install hexdiff
hexdiff 用法範例如下,1
hexdiff a.bin b.bin
結果如下圖,
dhex
在 Ubuntu 下安裝 dhex 的方式為:1
sudo apt install dhex
dhex 用法範例如下,1
dhex a.bin b.bin
結果如下圖,
以上就是 Linux 比較二進制檔案差異的工具介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
其它相關文章推薦
Linux 常用指令教學懶人包