Linux 比較二進制檔案差異的工具

本篇介紹 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
3
xxd 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
3
hexdump -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 常用指令教學懶人包