html tool

2019年1月21日星期一

xxd-linux 直接修改二进制方式


https://zhuanlan.zhihu.com/p/24883064

读取文件,二进制显示
$ xxd file1
00000000: 736f 6d65 2063 6f6e 7465 6e74 206f 6620  some content of
00000010: 6669 6c65 310a                           file1.
xxd 可以做反向 dump ,这就很“魔法”了(手册里作者原话)。 怎么 revert dump 呢?直接上代码
$ xxd file1 file1.dump
$ cat file1.dump 
00000000: 736f 6d65 2063 6f6e 7465 6e74 206f 6620  some content of 
00000010: 6669 6c65 310a                           file1.
$ vim file1.dump 
# magic editing...
$ cat file1.dump
00000000: 736f 6d65 4d41 4749 4321 6e74 206f 6620  some content of 
00000010: 6669 6c65 310a                           file1.
$ xxd -r file1.dump 
someMAGIC!nt of file1
很简单吧?直接加 -r 参数就能做反向 dump 。所以一般步骤是先 xxd TARGET DUMP_FILE 导出,然后修改 DUMP_FILE ,最后 xxd -r DUMP_FILE NEW_FILE (没有NEW_FILE 的时候默认输出到标准输出)。[popexizhi: 这个确实好魔幻啊,赞一个]

PS:
简单说下 vim 集成:
  • 先用二进制方式打开文件 vim FILE -b
  • 在正常模式下输入魔法 :%!xxd
  • 修改
  • 退出到正常模式,继续魔法 :%!xxd -r
用 -b 选项(即二进制模式)打开文件很重要啊!!!

没有评论:

发表评论