2011-04-03 wcdj
WinHex是一個專門用來對付各種日常緊急情況的小工具。它可以用來檢查和修複各種檔案、恢複刪除檔案、硬碟損壞造成的資料丟失等。同時它還可以讓你看到其他程式隱藏起來的檔案和資料。總體來說是一款非常不錯的 16 進位編輯器。得到 ZDNet Software Library(至頂網) 五星級最高評價,擁有強大的系統效用。
WinHex的更多介紹:http://www.hudong.com/wiki/winhex
本文主要介紹:在Windows下如何使用Vim以十六進位查看檔案的內容
第一步:
首先安裝好GVim,然後將其可執行檔目錄添加到系統的PATH環境變數裡,例如,D:/Program Files/Vim/vim72,這樣就可以在CMD裡直接調用vim了,而且可以添加執行參數。
第二步:
用vim以二進位格式開啟需要編輯或查看的檔案,不採用-b參數有時會導致轉換錯誤 (我沒有遇到這樣的錯誤)
vim -b file-to-open.dat
然後用 xxd 把檔案轉換成十六進位格式 ( 下面,% 指全文,!後跟外部命令 )
:%!xxd
轉化後顯示類似如下:
0000000: 5036 0a35 3932 2033 3230 0a32 3535 0a20 P6.592 320.255.
0000010: 190e 2019 0e20 190e 2019 0e20 190e 2019 .. .. .. .. .. .
0000020: 0e20 190e 2019 0e1f 180c 1f18 0c1f 180c . .. ...........
0000030: 1f18 0c1f 180c 1f18 0c1f 180c 1f18 0c27 ...............'
0000040: 1b0d 261a 0c24 1b0e 2319 0d22 180e 2017 ..&..$..#..".. .
0000050: 0c1f 180c 1e16 0b25 1d16 251d 1620 1a13 .......%..%.. ..
注意:
(1) 修改完成後,不要儲存,要再用 :%!xxd -r 切換成文本狀態格式再 :w
(2) 還可以加上參數 -c 來設定每行顯示多少位元組,例如,用 :%!xxd -c 16,就會顯示成16位元組一行
(3) 如果用 :%!od 命令,則會隱藏右側的文本列
(4) 改變文本列不會改變16進位裡的資料,只能手動在16進位列做修改,在文本列裡的修改是不會生效的
總結一下:
1, ga
顯示光線標下字元的ASCII數值。
例如,當前游標位置處的字元是2,ga後會在下端顯示如下內容:
<2> 50, 十六進位 32, 八進位 062
2, g + Ctrl-g
顯示光線標下字元在當前檔案的位元組位置。
其中,最後兩個數字就是檔案中當前位元組位置和檔案位元組總數。
3, 5go
指定游標移動到檔案中第5個位元組處。
4, :%!xxd
用十六進位方式顯示和編輯檔案。
例如:
:%!xxd 整個檔案以十六進位方式顯示
:3!xxd 檔案中第3行以十六進位方式顯示
注意:編輯完畢後,要使用命令 !xxd -r 將修改後的十六進位內容轉換回來,否則修改後的十六進位的內容將被當作普通文本對待。
5, :%!od
隱藏右側的文本列內容。
參考:
vim以16進位開啟和編輯檔案