使用vim编辑可执行文件--16进制模式
怎么使用VIM来编辑可执行文件呢? 并且是以16进制模式下!
首先,打开二进制文件时要加参数"-b",不然会报文件第一行错误.
$vim -b tuxcmd
打开文件后,默认是文本格式的,我们用":%!xxd"可以切换到十六进制编辑.
:%!xxd
是不是和utaredit很像呀?还可以加上参数-c来设置每行显示多少字节,比方用":%!xxd -c 16",就会显示成16字节一行.
如果用":%!od"命令,则会隐藏左侧的文本列.
不过,有一点不爽的就是改变文本列,不会改变16进制里的数据,只能手动在16进制列做修改.在文本列里的修改是不会生效的.
注意:修改完成后,不要保存,要再用":%!xxd -r"切换成文本状态格式再保存.
:%!xxd -r
最后
:wq
在vi的命令状态下 :
:%!xxd ——将当前文本转换为16进制格式。
:%!od ——将当前文本转换为16进制格式。
:%!xxd -c 12——将当前文本转换为16进制格式,并每行显示12个字节。
:%!xxd -r ——将当前文件转换回文本格式。
xxd工具:
xxd creates a hex dump of a given file or standard input.
It can also convert a hex dump back to its original binary form.
od工具:
Write an unambiguous representation, octal bytes by default, of FILE to standard output.
With more than one FILE argument, concatenate them in the listed order to form the input.