两个神器 —— Vim vs WinHex

来源:互联网 发布:java 工程师总结报告 编辑:程序博客网 时间:2024/06/05 05:38

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


隐藏右侧的文本列内容。


补充:除了使用工具外,在Linux环境下还可以直接使用一些命令来完成16进制的查看,比如:

od - dump files in octal and other formats

hexdump - ascii, decimal, hexadecimal, octal dump

xxd - make a hexdump or do the reverse



参考
vim以16进制打开和编辑文件

 


原创粉丝点击