zoukankan      html  css  js  c++  java
  • Vim+xxd=强大的十六进制编辑器


    Vim 是黑客文化中强大的编辑器。利用它调用外部十六进制文件显示命令xxd就可以顺利的编辑二进制文件了。
    其中,%在vimComandLine时代表当前文件的路径,xxd是以十六进制显示一个文件,xxd -r>是将十六进制还原为二进制。
    下面举一个例子,备份我们的MBR。
    sudo dd if=/dev/sda of=~/mbr.backup bs=512 count=1
    题外话:其中含有分区表,这时我们可以利用这个命令恢复我们的MBr:
    sudo dd if=~/mbr.backup of=/dev/sda bs=512 count=1
    sudo dd if=~/mbr.backup of=/dev/sda bs=1 count=66 seek=446(恢复分区表)
    好了,这个就是我们的MBR文件,是二进制的。


    首先以二进制的方式打开它:
    vim mbr.backup -b
    再在vim 命令模式下输入:
    :%!xxd          #参数%指当前所编辑的文件 
    此时MBR文件会以十六进制显示,现在就可以编辑它了。。
    ========================================================
     
     
    0000090: be88 7de8 1c01 be05 7cf6 c280 7448 b441 ..}.....|...tH.A
    00000a0: bbaa 55cd 135a 5272 3d81 fb55 aa75 3783 ..U..ZRr=..U.u7.
    00000b0: e101 7432 31c0 8944 0440 8844 ff89 4402 ..t21..D.@.D..D.
    00000c0: c704 1000 668b 1e5c 7c66 895c 0866 8b1e ....f..|f..f..
    00000d0: 607c 6689 5c0c c744 0600 70b4 42cd 1372 `|f...D..p.B..r
    00000e0: 05bb 0070 eb76 b408 cd13 730d f6c2 800f ...p.v....s.....
    00000f0: 84d0 00be 937d e982 0066 0fb6 c688 64ff .....}...f....d.
    0000100: 4066 8944 040f b6d1 c1e2 0288 e888 f440 @f.D...........@
    0000110: 8944 080f b6c2 c0e8 0266 8904 66a1 607c .D.......f..f.`|
    0000120: 6609 c075 4e66 a15c 7c66 31d2 66f7 3488 f..uNf.|f1.f.4.
    0000130: d131 d266 f774 043b 4408 7d37 fec1 88c5 .1.f.t.;D.}7....
    0000140: 30c0 c1e8 0208 c188 d05a 88c6 bb00 708e 0........Z....p.
    0000150: c331 dbb8 0102 cd13 721e 8cc3 601e b900 .1......r...`...
    0000160: 018e db31 f6bf 0080 8ec6 fcf3 a51f 61ff ...1..........a.
    0000170: 265a 7cbe 8e7d eb03 be9d 7de8 3400 bea2 &Z|..}....}.4...
    0000180: 7de8 2e00 cd18 ebfe 4752 5542 2000 4765 }.......GRUB .Ge
    0000190: 6f6d 0048 6172 6420 4469 736b 0052 6561 om.Hard Disk.Rea
    00001a0: 6400 2045 7272 6f72 0d0a 00bb 0100 b40e d. Error........
    00001b0: cd10 ac3c 0075 f4c3 e3b9 76fb 0000 8001 ...<.u....v.....
    00001c0: 0100 07fe ffff 3f00 0000 499d d801 00fe ......?...I.....
    00001d0: ffff 0ffe ffff c59d d801 eb4c 6a23 0000 ...........Lj#..
    00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
    00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.


     
    ================================================================
    编辑完了以后,我们需要还原为二进制文件:
    :%!xxd -r #参数-r是指将当前的十六进制转换为二进制


    好了,保存退出:
    :wq
    ==========================================





  • 相关阅读:
    P2176 [USACO14FEB]路障Roadblock
    【最短路】Dijkstra+ 链式前向星+ 堆优化(优先队列)
    图论其一:图的存储
    【计算几何】二维凸包——Graham's Scan法
    P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
    P2639 [USACO09OCT]Bessie的体重问题 【背包问题】
    如何评价代码质量的高低
    乔新亮-衡量企业 IT 团队价值的唯一指标是什么
    我总结了平台的5道坎
    hadoop namenode的工作机制
  • 原文地址:https://www.cnblogs.com/roger0212/p/4436667.html
Copyright © 2011-2022 走看看