0%

使用vim编辑二进制文件


  • 以二进制方式编辑这个文件

    1
    vi -b filename
  • 使用xxd转换为16进制

      :%!xxd
    

    此时文本将会转换成二进制显示:

      0000000: 504b 0304 0a00 0000 0000 6181 5948 0000  PK........a.YH..
      0000010: 0000 0000 0000 0000 0000 1600 1000 e99c  ................
      0000020: 80e8 a681 e4bf aee6 94b9 e79a 84e5 9bbe  ................
      0000030: e789 872f 5558 0c00 84b6 ce56 15b7 ce56  .../UX.....V...V
      0000040: f501 1400 504b 0304 1400 0800 0800 4181  ....PK........A.
    
  • 现在可以随心所欲地阅读和编辑这些文本了。 Vim 把这些信息当作普通文本来对待。

    注意:此时文件实际已经被完全改写成了上边的文本的样子,如果现在要退出,vi会提示你保存。如果保存了,文件就会变成上边那样的文本,如果只是查看不做修改的话,可以直接:q!退出。如果进行了修改,则需要使用下面的方法还原成二进制文件然后保存退出。

  • 转换16进制

      :%!xxd -r
    
  • 保存退出

      :wq
    

注意:

转换的命令不能重复执行,一个已经转换为16进制文本的文件如果再次执行转换那等于就是把刚才已经转换过的结果又进行了一次转换,那结果就错了。不过应该没人会犯这么明显的错误吧,呵呵。。

##参考
mac中使用vi修改二进制文件