VIM編輯二進位制檔案

2021-06-01 11:39:15 字數 1838 閱讀 4149

對於二進位制檔案的編輯,windows下有一款很優秀的軟體winhex,會讓你的生活非常簡單。但是到了linux

下面似乎沒有專門的二進位制編輯器,但是大家不要忘了vim

!雖然vim並不是針對二進位制編輯而設計,但是通過技巧也可讓vim成為很好用的二進位制編輯器。

現在假設我要把磁碟/dev/sda上1第乙個扇區(也就是mbr和硬碟分割槽表所在的位置)dump出來並進行檢視和編輯。

#用dd先把硬碟前512byte的資料dump出來
$sudo ddif=/dev/sda of=sda.mbr bs=512

count=1

# 用帶-b引數的vim開啟它,-b告訴vim開啟的是二進位制檔案,

# vim就不會自作聰明地做一些額外的處理,比如自動換行等等
$vim-b sda.mbr

進入vim剛開是顯示的是亂碼,不用著急。在vim下輸入 :%!xxd,馬上就會顯示如下:

0000000: eb48 90d0 bc00 7c8e c08e d8be 007c bf00  .h....|......|..
0000010: 06b9 0002 fcf3 a450 681c 06cb fbb9 0400  .......ph.......
0000020: bdbe 0780 7e00 007c 0b0f 8510 0183 c510  ....~..|........
0000030: e2f1 cd18 8856 0055 c646 1105 c646 0302  .....v.u.f...f..

這樣就成為了乙個常見的二進位制編輯器的樣子了吧。左邊是二進位制顯示的資料,右邊是把二進位制轉化為字元的形式,對於無法轉化的字元就表示為點號。

注意如果你要修改二進位制檔案的話,一定要編輯左邊的hex, 改寫右邊的文字沒用,這個和ultraedit有所不同。

編輯好了再「:%!xxd -r」轉換回文字模式」:wq」存檔退出。 如果你沒有-r就儲存,vim就會用螢幕上的hex+text格式儲存的,切記要-r回來再儲存。

最後讓我們再總結一些vim編輯二進位制檔案的方法:

1. 用vim -b 開啟檔案

2. 使用:%!xxd命令

3. 編輯檔案(只編輯右邊字元不會儲存)後使用:%xxd -r

4. :wq儲存並退出檔案

對於一些.o或者.exe的檔案,大家也可以在.vimrc中加入下面**,vim自動用二進位制方式顯示檔案,並且編輯後也可以直接:wq,vim會自動執行:%xxd -r再儲存退出。

augroup binary
au!
au bufreadpre   *.o,*.exe let &bin=1
au bufreadpost  *.o,*.exe if &bin | %!xxd
au bufreadpost  *.o,*.exe set ft=xxd | endif
au bufwritepre  *.o,*.exe if &bin | %!xxd -r
au bufwritepre  *.o,*.exe endif
au bufwritepost *.o,*.exe if &bin | %!xxd
au bufwritepost *.o,*.exe set nomod | endif
augroup end

[from]  :

vim編輯二進位制檔案

對於二進位制檔案的編輯,windows下有一款很優秀的軟體winhex,會讓你的生活非常簡單。但是到了linux 下面似乎沒有專門的二進位制編輯器,但是大家不要忘了vim 雖然vim並不是針對二進位制編輯而設計,但是通過技巧也可讓vim成為很好用的二進位制編輯器。現在假設我要把磁碟 dev sda上...

vim編輯二進位制檔案

vim可以很方便地編輯二進位制檔案,個人認為它比emacs的二進位制編輯方式更 好用。vim中二進位制檔案的編輯是先通過外部程式xxd來把檔案dump成其二進位制的 文字形式,然後就可以按通常的編輯方式對檔案進行編輯,編輯完成後再用xxd 轉化為原來的形式即可。可分如下幾步進行 首先,以二進位制方式...

vim編輯二進位制檔案

vim可以很方便地編輯二進位制檔案,個人認為它比emacs的二進位制編輯方式更 好用。vim中二進位制檔案的編輯是先通過外部程式xxd來把檔案dump成其二進位制的 文字形式,然後就可以按通常的編輯方式對檔案進行編輯,編輯完成後再用xxd 轉化為原來的形式即可。可分如下幾步進行 首先,以二進位制方式...