您当前的位置:首页 > 电脑百科 > 电脑知识

xxd命令修改和查看二进制文件

时间:2022-01-04 09:54:02  来源:  作者:铁锈笔记

1linux环境xxd命令如何编辑/修改二进制文件

xxd工具虽然不能直接修改二进制文件,但xxd -r参数可把Hexdump文本转成二进制内容。convert (or patch) hexdump into binary.

因此,对于要修改的二进制文件,可以先转为Hexdump文本,再通过xxd -r命令把Hexdump文本转为二进制文件。

[mycc@wen*z:~]$ xxd file1.binary
0000000: 1234 0001 0000 0000 2022 0103 9900 000c  .4...... "......
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...
0000020: 6700 00f7 0100 001f 0933 0900 0000 0310  g........3......
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0
[mycc@wen*z:~]$ xxd file1.binary > file1.txt 
[mycc@wen*z:~]$ vi file1.txt 
[mycc@wen*z:~]$ cat file1.txt 
0000000: abcd 0001 0000 0000 2022 0103 9900 000c  .4...... "......
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...
0000020: 6700 00f7 0100 001f 0933 0900 0000 0310  g........3......
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0
[mycc@wen*z:~]$ xxd -r file1.txt  file1.binary
[mycc@wen*z:~]$ xxd file1.binary
0000000: abcd 0001 0000 0000 2022 0103 9900 000c  ........ "......
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...
0000020: 6700 00f7 0100 001f 0933 0900 0000 0310  g........3......
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0
xxd命令修改和查看二进制文件

xxd修改二进制文件示例

2用xxd查看二进制文件

2.1查看二进制文件

[mycc@wen*z:~]$ xxd file1.binary
0000000: 1234 0001 0000 0000 2022 0103 9900 000c  .4...... "......
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...
0000020: 6700 00f7 0100 001f 0933 0900 0000 0310  g........3......
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0

2.2.查看指定字节数量内容:-l参数表示长度

xxd -l 32 file1.binary 查看前32个字节

[mycc@wen*z:~]$ xxd -l 32 file1.binary 
0000000: 1234 0001 0000 0000 2022 0103 9900 000c  .4...... "......
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...

2.3查看指定偏移位置后的内容:-s参数表示偏移位置(从0开始),当值为负数时为从尾向前数偏移

xxd -s 16 file1.binary 查看从16字节开始的内容

[mycc@wen*z:~]$ xxd -s 16  file1.binary 
0000010: 22f9 0100 0041 3106 1992 6741 3106 1992  "....A1...gA1...
0000020: 6700 00f7 0100 001f 0933 0900 0000 0310  g........3......
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0

xxd -s -16查看最后16字节内容

[mycc@wen*z:~]$ xxd -s -16 file1.binary 
0000030: 4800 0000 7156 0559 71fb 0102 2c01 0130  H...qV.Yq...,..0

2.4 限定每行输出的字节数:-c 参数,限定每行字节数量

xxd -c 8 file1.binary查看内容,每行8字节

[mycc@wen*z:~]$ xxd -c 8 file1.binary 
0000000: 1234 0001 0000 0000  .4......
0000008: 2022 0103 9900 000c   "......
0000010: 22f9 0100 0041 3106  "....A1.
0000018: 1992 6741 3106 1992  ..gA1...
0000020: 6700 00f7 0100 001f  g.......
0000028: 0933 0900 0000 0310  .3......
0000030: 4800 0000 7156 0559  H...qV.Y
0000038: 71fb 0102 2c01 0130  q...,..0

2.5以纯Hex字符输出:-p参数表示无空格,无序号,无ascii格式部分

xxd -p file.binary

[mycc@wen*z:~]$ xxd -p file1.binary 
1234000100000000202201039900000c22f9010000413106199267413106
1992670000f70100001f0933090000000310480000007156055971fb0102
2c010130

 

2.6将二进制文件内容转为C语言内容:-i参数

xxd -i file1.binary将二进制文件内容转为c数组,这在某些测试过程中是有用的

[mycc@wen*z:~]$ xxd -i file1.binary
unsigned char file1_binary[] = {
  0x12, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0x01, 0x03,
  0x99, 0x00, 0x00, 0x0c, 0x22, 0xf9, 0x01, 0x00, 0x00, 0x41, 0x31, 0x06,
  0x19, 0x92, 0x67, 0x41, 0x31, 0x06, 0x19, 0x92, 0x67, 0x00, 0x00, 0xf7,
  0x01, 0x00, 0x00, 0x1f, 0x09, 0x33, 0x09, 0x00, 0x00, 0x00, 0x03, 0x10,
  0x48, 0x00, 0x00, 0x00, 0x71, 0x56, 0x05, 0x59, 0x71, 0xfb, 0x01, 0x02,
  0x2c, 0x01, 0x01, 0x30
};
unsigned int file1_binary_len = 64;

2.7综合利用上面参数示例

xxd -p -s 16 -l 32 -c 8 file1.binary 偏移16字节,输出32个字节内容,每行输出8字节,以纯Hex方式显示

[mycc@wen*z:~]$ xxd -p -s 16 -l 32 -c 8 file1.binary
22f9010000413106
1992674131061992
670000f70100001f
0933090000000310

xxd --help
[mycc@wen*z:~]$ xxd --help
Usage:
       xxd [options] [infile [outfile]]
    or
       xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
Options:
    -a          toggle autoskip: A single '*' replaces nul-lines. Default off.
    -b          binary digit dump (incompatible with -ps,-i,-r). Default hex.
    -c cols     format <cols> octets per line. Default 16 (-i: 12, -ps: 30).
    -E          show characters in EBCDIC. Default ASCII.
    -g          number of octets per group in normal output. Default 2.
    -h          print this summary.
    -i          output in C include file style.
    -l len      stop after <len> octets.
    -ps         output in postscript plain hexdump style.
    -r          reverse operation: convert (or patch) hexdump into binary.
    -r -s off   revert with <off> added to file positions found in hexdump.
    -s [+][-]seek  start at <seek> bytes abs. (or +: rel.) infile offset.
    -u          use upper case hex letters.
    -v          show version: "xxd V1.10 27oct98 by Juergen Weigert".


Tags:xxd命令   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1Linux环境xxd命令如何编辑/修改二进制文件xxd工具虽然不能直接修改二进制文件,但xxd -r参数可把Hexdump文本转成二进制内容。convert (or patch) hexdump into binary.因此,...【详细内容】
2022-01-04  Tags: xxd命令  点击:(0)  评论:(0)  加入收藏
▌简易百科推荐
1Linux环境xxd命令如何编辑/修改二进制文件xxd工具虽然不能直接修改二进制文件,但xxd -r参数可把Hexdump文本转成二进制内容。convert (or patch) hexdump into binary.因此,...【详细内容】
2022-01-04  铁锈笔记    Tags:xxd命令   点击:(0)  评论:(0)  加入收藏
物理内存的组织方式前面咱们讲虚拟内存,涉及物理内存的映射的时候,我们总是把内存想象成它是由连续的一页一页地块组成的。我们可以从 0 开始对物理页编号,这样每个物理页都会...【详细内容】
2021-12-31  深度Linux    Tags:物理内存   点击:(4)  评论:(0)  加入收藏
回答这个问题前首先要了解一度电的定义一度电= 1000W&middot;h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(7)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(25)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(14)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(12)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维&middot;卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(27)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(33)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(36)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条