查看二進制有以下幾種方法:
方法一:hexdump
apt-get install libdata-hexdumper-perl
安裝好之后就可以直接hexdump your_binary_file
也可以直接使用hd命令來代替hexdump
如果想要慢慢看 : hd your_binary_file | more
方法二:
Vim 可以用來查看和編輯二進制文件
vim -b egenea-base.ko 加上-b參數,以二進制打開
然后輸入命令 :%!xxd -g 1 切換到十六進制模式顯示
0000000: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
0000010: 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
0000020: 2c a7 03 00 00 00 00 00 34 00 00 00 00 00 28 00 ,.......4.....(.
0000030: 10 00 0d 00 55 89 e5 51 51 8b 45 08 85 c0 74 11 ....U..QQ.E...t.
0000040: 52 52 50 a1 00 00 00 00 50 e8 fc ff ff ff 83 c4 RRP.....P.......
0000050: 10 89 ec 5d c3 8d 76 00 55 89 e5 50 50 b8 01 00 ...]..v.U..PP...
0000060: 00 00 8b 55 08 39 d0 73 09 8d 76 00 01 c0 39 d0 ...U.9.s..v...9.
0000070: 72 fa 8b 55 04 51 52 50 a1 00 00 00 00 50 e8 fc r..U.QRP.....P..
0000080: ff ff ff 89 ec 5d c3 90 55 89 e5 50 50 b8 01 00 .....]..U..PP...
0000090: 00 00 8b 55 08 39 d0 73 09 8d 76 00 01 c0 39 d0 ...U.9.s..v...9.
00000a0: 72 fa 8b 4d 04 8b 55 10 51 52 50 a1 00 00 00 00 r..M..U.QRP.....
00000b0: 50 e8 fc ff ff ff 89 ec 5d c3 89 f6 55 89 e5 57 P.......]...U..W
00000c0: 56 53 81 ec 8c 00 00 00 8b 5d 1c 8b 45 10 85 db VS.......]..E...
00000d0: 75 7e 85 c0 75 71 50 8b 45 04 50 a1 00 00 00 00 u~..uqP.E.P.....
00000e0: 68 8c 00 00 00 50 e8 fc ff ff ff 83 c4 10 89 c2 h....P.........
然后就可以像修改文本文件一樣修改16進制的字符,可以用 / 查找指定的偏移等等。修改右邊的ascii字符應該無效。修改完成后再執行:%!xxd -r 切換會二進制模式,然后再 :wq 保存退出就可以了。在這vim里面這樣編輯還是很方便的,注意一定要:%!xxd -r切換回來之后在保存才行。
方法三. linux 上面也有十六進制編輯的GUI工具
jeex (http://www.hds619.net/jeex.php)
ghex
bless (Bless is a Hex Editor for Gtk# http://home.gna.org/bless/)
UltraEdit
二 比較兩個二進制文件,可以使用vimdiff。
vimdiff應該還是比較好用的,類似windows 平台的windiff
vim -bd base.ko base2.ko
打開后就可以在兩個窗口里面顯示兩個文件
ctrl + W +L 把輸入焦點切換到右邊的窗口,激活右邊的窗口后輸入的命令就是針對右窗口了
:%!xxd -g 1 切換成十六進制的一個字節的模式
ctrl + W +H 把輸入焦點切換到左邊的窗口
:%!xxd -g 1
] + c 查找上一個不同點
[ + c 查找下一個不同點
0012930: 89 df 68 77 01 00 00 e8 fc ff| 0012930: 89 df 68 78 01 00 00 e8 fc f
轉自:http://blog.csdn.net/chenqiai0/article/details/8537832
