星期三, 6月 14, 2006

vi - to edit a hex file (hex editor)

vi 要編輯hex 資料,要如何作呢?

這一篇回答中有提到,配合外部程式 xxd 就可以了。

man xxd 看看說明.. xxd 用來作hexdump 或是由 hex dump data 轉回文件。

簡單的用法:
$xxd     hexfile           - 將hexfile 這一個file hexdump 出來
$xxd -r dumpdata orgfile - 將hexdump 的 file 轉回原來的file
很方便,可以用來dump 所有檔案,看看標頭。

在vi 中使用是用 shell 命令 %!
$ vi myfile
因為是hexfile,所以都是看不懂的字。
[ESC]
:%!xxd
這樣就看到 hex mode 的 data了,可以進行編輯...
編輯完後
[ESC]
%!xxd -r
這樣又轉回看不懂的字
:wq
回存結束。很方便。
當然,也可以在外面先用xxd 將檔案轉成hexdump,用vi 編輯後 再用xxd -r 轉回來。
(不過這樣就比較麻煩了)

* 要注意的是,xxd 作reverse 時,碰到error會ignore ,不會有任何error message。
所以在編輯hexdata時,輸入了0-F以外的字,reverse時沒有 error message...

沒有留言:

網誌存檔