xxd

xxd [options] [files]

xxd 可以转储 [dump] 出文件的数据,反之亦可。例如:

xxd -l 0x30 /bin/ls
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
00000010: 0300 3e00 0100 0000 5058 0000 0000 0000  ..>.....PX......
00000020: 4000 0000 0000 0000 a003 0200 0000 0000  @...............

上面的命令 dumpls 命令二进制文件的前 0x30 个字节的数据,第一列是偏移,默认每行两字节一组,8组共16字节,最后一列是数据代表的字符,只显示可打印字符。

option meaning
-l N 只显示前 N 个字节的数据
-s N / -s -N 跳过前 N 个字节的数据,之后开始显示,-N 则表示只显示文件末尾的 N 个数据
-c N 每行显示的字节数,默认是16
-g N 将每行的字节数据打包成 N 个字节的 8位元组,默认是2
-ps 输出连续的字节串

因此下面的命令将逐字节显示文件 /bin/ls 前 0x30 个字节的数据。

xxd -g 1 -l 0x30 /bin/ls00000000: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  .ELF............
00000010: 03 00 3e 00 01 00 00 00 50 58 00 00 00 00 00 00  ..>.....PX......
00000020: 40 00 00 00 00 00 00 00 a0 03 02 00 00 00 00 00  @...............

how-to-edit-binary-files-with-vim1

可以使用 xxd 工具配合 vim 来实现一个16进制编辑器。一个使用场景是更改二进制文件的数据,这样可以在不重新编译可执行文件的情况下,直接更改二进制中的某些指令用于调试。

// open file as binary mode.
vim -b file:set binary// : enters command-line mode,
// % matches whole file as a range,
// ! filters that range through an external command
// xxd is that external shell command
:%!xxd// edit the file
...
// Once you make the changes (in the hex part), you can go back to text with -r command on xxd
:%!xxd -r// rembember you can also use syntax highlighting for hex editing in vim with that command:
:set ft=xxd

armeb code dump: 0x11223344 and 0xe3a01001 mov r1, #1

00000030: 00 08 00 07 11 22 33 44 e3 a0 10 01 41 00 00 00  ....."3D....A...

arm code dump: 0x11223344 and 0xe3a01001 mov r1, #1

00000030: 08 00 07 00 44 33 22 11 01 10 a0 e3 41 1c 00 00  ....D3".....A...

  1. https://vi.stackexchange.com/questions/343/how-to-edit-binary-files-with-vim ↩︎

使用 vim 和 xxd 编辑二进制文件相关推荐

  1. 如何用VI编辑器编辑二进制文件

    1.用带-b参数的vim打开它,-b告诉vim打开的是二进制文件 $ vim -b binaryfile 2. 在vim下输入 :%!xxd,会得到如下显示, xxd程序是vim软件包自带的一个程序, ...

  2. Linux之Vim文本代码编辑神器应用get技巧

    作为一名IT运维人员,在工作闲暇之际会研究一些与工作运维有关的运维方法技能或技巧.我写这篇文章目的,纯粹出于对VIM编辑器的一知半解,或者说是在学习过程中形成的笔记. 熟悉Linux的同行们都清楚一件 ...

  3. vim 多文件编辑【超实用】

    vim 多文件编辑(偶的linux笔记) http://blog.csdn.net/lcj_cjfykx/article/details/18805721 通过vim打开的每个文件都对应着一个buff ...

  4. 技巧:Vim 的纵向编辑模式

    https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/ 开始之前 人类大脑对文字的处理是平面式的,所以我们浏览文章.查找资料或者重构代码 ...

  5. [转]技巧:Vim 的纵向编辑模式

    原文转自:http://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/index.html 开始之前 人类大脑对文字的处理是平面式的,所以我们浏 ...

  6. 工具及方法 - 编辑二进制文件(使用VSCode和Notepad++的插件Hex Editor)

    Visual Studio Code 在VSCode里安装插件,可以实现很多功能. 打开VSCode,在菜单里选择, View->Extensions,就会出现扩展插件的查找页面. 输入想要查找 ...

  7. BinaryEditor:用ListView实现编辑二进制文件

    BinaryEditor下载地址:[网通]点击这里来下载吧,带源程序哦. [电信.网通]点击此处下载源程序 [下载说明] 1.单击上面这个地址,打开下载页面. 2.点普通下载--等待30秒--点&qu ...

  8. Mac中vim的 进入编辑状态、退出编辑状态、强制保存并退出

    Mac中vim的 进入编辑状态.退出编辑状态.强制保存并退出 (注意在英文输入法下进行) 举例说明: 终端输入: vim ~/.bash_profile 键盘输入[i]进入编辑状态,开始并完成内容修改 ...

  9. Linux VIM编辑二进制文件

    在vim下面编辑二进制的方式如下: vim -b binary_file -b 这个参数设定了 'binary' 选项. 然后输入: :%!xxd 这个命令把文件内容以常见的字节偏移 十六进制 ASC ...

最新文章

  1. Vue 入门,Vue属性和指令
  2. 如何检查服务是否在Android上运行?
  3. 监控指标10K+!携程实时智能检测平台实践
  4. oncreate为什么一定要调用父类的oncreat_为什么你老是讲不清楚JS的继承模式
  5. Mac上Java开发环境配置
  6. springboot监听器_Spring Boot中文参考指南(2.1.6)23.5、应用程序事件和监听器
  7. mybatis批量删除和插入
  8. Oracler的锁概念
  9. access后台链接mysql_Access为后台数据库的网站统计系统
  10. vscode插件之php插件koroFileHeader(自动生成注释)
  11. 打开IE8总是提示欢迎使用?怎样使它不提示?
  12. qnx 设备驱动开发_一种QNX系统的USB驱动加载方法与流程
  13. CTF_ctfshow_meng新_web1-web24
  14. 从钢铁侠看Decorator 装饰者模式
  15. 盘点7款常用的数据分析工具
  16. “钩子”、体验和思考人生,一家瑞典游戏工作室如何站稳脚跟,又不被自己的野心呛到
  17. PS-fourday-套索工具组(抠图强化)
  18. python爬虫爬取图片并存入本地
  19. 第三方支付结算周期T1,T0,D1,D0区别
  20. RNN-循环神经网络-吴恩达读书笔记

热门文章

  1. 【插件工具】Vue.js is detected on this page. Open DevTools and look for the Vue panel报错及安装vue-detools
  2. Filtration and Distillation: Enhancing Region Attention for Fine-Grained Visual Categorization
  3. 河海大学应用经济学专业考研上岸经验分享
  4. 关于C++三角函数的使用与注意总结
  5. PTA 红色警报(并查集)
  6. 连接微软云的几种方式
  7. 微信小程序用户长按图片扫码
  8. Java DB loadBalance设计
  9. 智能电视:荣耀、小米战火彻底燃烧
  10. 为硬件保留内存解决办法