一、在linux下檢視二進位制檔案的軟體:
xxd (2進製)
hexdump (16進製制)
1、biew
2、hexedit
3、vim
vim 來編輯二進位制檔案。vim 本非為此而設計的,因而有若干侷限。但你能讀
取乙個檔案,改動乙個字元,然後把它存檔。結果是你的檔案就只有那乙個字元給改了,
其它的就跟原來那個一模一樣。
要保證 vim 別把它那些聰明的竅門用錯地方,啟動 vim 時加上 "-b" 引數:
vim -b datafile
這個引數設定了 'binary' 選項。其作用是排除所有的意外***。例如,'textwidth'
設為零,免得文字行給擅自排版了。並且,檔案一律以 unix 檔案格式讀取。
二進位制模式可以用來修改某程式的訊息報文。小心別插入或刪除任何字元,那會讓程式運
行出問題。用 "r" 命令進入替換模式。
檔案裡的很多字元都是不可顯示的。用 hex 格式來顯示它們的值:
:set display=uhex
另外,也可以用命令 "ga" 來顯示游標下的字元值。當游標位於乙個 字元上時,
該命令的輸出看起來就像這樣:
27, hex 1b, octal 033
檔案中也許沒那麼多換行符。你可以關閉 'wrap' 選項來獲得總覽的效果:
:set nowrap
字 節 位 置
要發現你在檔案中的當前位元組位置,請用這個命令:
g ctrl-g
其輸出十分冗長:
col 9-16 of 9-16; line 277 of 330; word 1806 of 2058; byte 10580 of 12206
最後兩個數字就是檔案中的當前位元組位置和檔案位元組總數。這已經考慮了 'fileformat'
選項導致換行符位元組不同的影響。
要移到檔案中某個指定的位元組,請用 "go" 命令。例如,要移到位元組 2345:
2345go
使 用 xxd
乙個真正的二進位制編輯器用兩種方式來顯示文字: 二進位制和十六進製制格式。你可以在 vim
裡通過轉換程式 "xxd" 來達到這效果。該程式是隨 vim 一起發布的。
首先以二進位制方式編輯這個檔案:
vim -b datafile
現在用 xxd 把這個檔案轉換成十六進製制:
:%!xxd
文字看起來像這樣:
0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+ni
0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 k,.`.....b..4^.0
0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.
現在你可以隨心所欲地閱讀和編輯這些文字了。 vim 把這些資訊當作普通文本來對待。
修改了十六進製制部分並不導致可顯示字元部分的改變,反之亦然。
最後,用下面的命令把它轉換回來:
:%!xxd -r
只有十六進製制部分的修改才會被採用。右邊可顯示文字部分的修改忽略不計。
比較兩個二進位制檔案,可以使用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
注意事項:
1、一定要;%!xxd -r切換回來之後在儲存才行。
vim編輯二進位制檔案
對於二進位制檔案的編輯,windows下有一款很優秀的軟體winhex,會讓你的生活非常簡單。但是到了linux 下面似乎沒有專門的二進位制編輯器,但是大家不要忘了vim 雖然vim並不是針對二進位制編輯而設計,但是通過技巧也可讓vim成為很好用的二進位制編輯器。現在假設我要把磁碟 dev sda上...
VIM編輯二進位制檔案
對於二進位制檔案的編輯,windows下有一款很優秀的軟體winhex,會讓你的生活非常簡單。但是到了linux 下面似乎沒有專門的二進位制編輯器,但是大家不要忘了vim 雖然vim並不是針對二進位制編輯而設計,但是通過技巧也可讓vim成為很好用的二進位制編輯器。現在假設我要把磁碟 dev sda上...
vim編輯二進位制檔案
vim可以很方便地編輯二進位制檔案,個人認為它比emacs的二進位制編輯方式更 好用。vim中二進位制檔案的編輯是先通過外部程式xxd來把檔案dump成其二進位制的 文字形式,然後就可以按通常的編輯方式對檔案進行編輯,編輯完成後再用xxd 轉化為原來的形式即可。可分如下幾步進行 首先,以二進位制方式...