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

==========================================

Vim+xxd=强大的十六进制编辑器的更多相关文章

  1. xxd十六进制编辑器的安装

    一.背景:在vi中使用命令:%!xxd无法进行十六进制编辑,为缺少xxd命令所致 二.yum直接安装xxd无法成功[root@ELK ~]# yum install xxd已加载插件:fastestm ...

  2. VIM的强大功能

    转发地址:http://coolshell.cn/articles/5426.html 简明 Vim 练级攻略   vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是 ...

  3. Treed – 基于拖放 操作的,强大的树形编辑器

    Treed 是一个功能强大的树型编辑组件.Treed 使用 MVC 模式,简单的构造可以帮助你轻松创建一个完全不同的树形视图.您也可以创建自己的“节点”类,如果你想要做的不仅仅是单一的文本输入. 您可 ...

  4. linux下的十六进制编辑器---wxHexEdit

    ....其实wxHexEdit是一个跨平台的十六进制编辑器,支持windows,linux,mac. 之所以标题用linux...是因为windows下多数都用winhex,UE之类的编辑器,而lin ...

  5. 发现一个不错的十六进制编辑器-HxD

    十六进制编辑器我觉得是个必需的工具,遥想当年用文曲星的时候,Pacmanager.Ewayeditor…… 之前都在用WinHex,好用,但是是个收费软件,老用着破解版心里还是不舒服 后来发现这个名叫 ...

  6. 强大的代码编辑器 phpstorm version 2016.2 License Server激活

    "磨刀不误砍柴工","工欲善其事必先利其器",找个一个好的代码开发编辑工具可以让我们事半功倍,并且代码质量得到保障,在这里就推荐一款强大的代码编辑器,不对其实可 ...

  7. 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器

    JeeWx捷微4.0   微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...

  8. Typora 精美而强大的Markdown编辑器

    Typora 精美而强大的Markdown编辑器  转 https://www.jianshu.com/p/45e284645d30 Markdown编辑器千千万,可是有颜值.功能强并且免费的,就没有 ...

  9. Typora 精美而强大的Markdown编辑器 转

    Typora 精美而强大的Markdown编辑器 Markdown编辑器千千万,可是有颜值.功能强并且免费的,就没有几个了.之前一直在用Mou,分屏预览模式方便得很,是一个非常好的选择.不过这篇可不是 ...

随机推荐

  1. java—容器学习笔记

    一:迭代器 刚开始学容器,做了个简单的练习题.. import java.util.ArrayList; import java.util.Collection; import java.util.I ...

  2. sessionStorage 的使用

    sessionStorage 的使用: sessionStorage.removeItem("data"); sessionStorage.getItem("data&q ...

  3. cglib动态代理(即AOP)

    Computer.java package com.wh.spring_aop; public class Computer { public void playLOL(){ System.out.p ...

  4. Html基础学习(基于W3school网络教程)

    //防止乱码 head中加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8&q ...

  5. 初学者Android studio安装

    学习过java基础,最近趁着大量课余时间想学习Android开发.百度很多资料Android studio,由Google开发的开发工具,那就不需要再多说.对于初学者的我来说,一定足够用了.此文主要介 ...

  6. VC窗口类的销毁-是否需要delete

    Windows窗口如果使用new的方法添加之后,在父窗口析构的时候,有些需要delete有些却不需要delete.这个的确有点坑,由于c++的实现,对于每个自己new的对象,我都会delete删除它, ...

  7. hibernate 级联删除报更新失败的问题(org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update)

    首先hibernate级联删除的前提是,首先需要在映射文件中配置,配置多表之间的关联关系: 下面以部门表(Dept)和员工表(Emp)为例: 1.在Emp.hbm.xml映射文件中配置many-to- ...

  8. TensorFlow学习---入门(一)-----MNIST机器学习

    参考教程:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html 数据下载地址:http://wiki.jikexueyuan.com ...

  9. html5——动画案例(无缝滚动)

    无缝滚动:是两组拼在一起的 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  10. JS——鼠标跟随

    注意事项: 1.pageX.pageY的兼容问题 2.使目标移动鼠标中间位置还必须减去盒子宽度的一半 <!DOCTYPE html> <html lang="en" ...