首页 / 科技百科

如何打开二进制文件

2025-01-23 08:25科技百科
1Linux环境xxd命令如何编辑/修改二进制文件

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

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

[mycc@wen*z:~]$ xxd file1.binary0000000: 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.binary0000000: 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修改二进制文件示例

2用xxd查看二进制文件

2.1查看二进制文件

[mycc@wen*z:~]$ xxd file1.binary0000000: 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.Y0000038: 71fb 0102 2c01 0130 q...,..0

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

xxd -p file.binary

[mycc@wen*z:~]$ xxd -p file1.binary 1234000100000000202201039900000c22f90100004131061992674131061992670000f70100001f0933090000000310480000007156055971fb01022c010130

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

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

[mycc@wen*z:~]$ xxd -i file1.binaryunsigned 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.binary22f90100004131061992674131061992670000f70100001f0933090000000310

xxd --help[mycc@wen*z:~]$ xxd --helpUsage: 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.

更新于:1个月前

猜你喜欢

  • 牛百叶如何清洗才不臭?牛百叶如何煮不会硬

    一般牛百叶是不煮的,确切的说是烫一下即可,牛百叶切成丝,盛漏瓢中在沸水中烫3分钟,时间一长,肯定很老,还会缩的很厉害的。你只要等水开了,放入生姜酒(生姜汁加黄酒),牛百叶切好的放下去一烫就好,捞出拌入或浇上调料汁就好。下面,就快和一起了解相关知识吧!本文目录1、牛百叶如何清洗才不臭?2、牛百叶如何煮不..

    2025-03-03
  • 世界奇闻

    探索未知:宇宙飞船如何实现深空探测?

    在浩瀚的宇宙中,深空探测一直是人类探索未知的前沿。随着科技的不断进步,我们的宇宙飞船能够穿越太阳系,甚至更远,揭开宇宙的神秘面纱。那么,宇宙飞船是如何实现深空探测的呢?让我们一同走进这个迷人的领域,探索其中的奥秘。一、深空探测的意义深空探测不仅是科学研究的需要,更是人类探索精神的体现。通过探测,我们..

    2025-03-02
  • 世界上最坚贞的树,“岁寒三友”松柏如何坚贞?

    自然界原本有很多的东西都是很平常的,只是由于人类结合周边的环境与自己的理解,将很多的事物赋予了一种特殊的含义。“坚贞”一词原本是形容一个人的优良品质的一个词,但是由于有种树比较符合人类对于“坚贞”一次的理解,所以便将这种树作为了这个词的代表,下面就由我为大家介绍一下世界上最坚贞的树。1、世界上最坚贞..

    2025-03-02
  • 美食百科

    五香豆干如何炒才软

    炒豆干时,记住别直接下锅炒,多加1步,好吃没怪味,真香冬至过后,年关将近,进入到“数九”时节,之后的天气也会愈发寒冷,在这时候,我们可以适量的吃一些蒜苗等具有辛辣味的食材,蒜苗中含有的辣素,食用之后,对身体也是有多种好处的。蒜苗具有大蒜的辛辣味,平时可以用来炒菜,拌面等,都非常提味,在蒜苗的多种做法..

    2025-03-01
  • 育儿百科

    如何顺利度过糖筛 糖筛检查多少时间可以出报告

    如何顺利度过糖筛1.检查前两周就要开始节制饮食了,淀粉类的要少吃。糖分高的水果,甜食,蔬菜和油炸高油脂的食品也不能吃,以免体内积累太多的糖分,而导致糖筛不过。同时要多吃蔬菜,保证充足的维生素和纤维素。2.饭后一定要散步,把体内的糖分消耗掉。3.做检查前一天,8点后不要进食,禁食12小时后抽血,效果最好。喝了..

    2025-02-28
  • 科技百科

    怎么修改文件时间和创建时间

    怎么修改文件创建时间?当我们在电脑上创建一个文件时,创建的时候会被写入软件属性当中,打开文件的属性就能看到创建时间,文件的时间能精确到秒。有时候我们为了不让别人知道文件的真实创建时间,就需要对修改文件的创建时间,不知道大家是否有过这样的经历呢?不过修改文件的创建时间可不是一件简单的事情,对于普通电脑..

    2025-02-28
  • 科技百科

    手机输入法如何打出正方形序号

    简介:手机输入法在拼音和笔画状态下都可以输入①②③④,下面给大家介绍一下工具:智能手机输入法一、拼音输入法状态输入拼音“yi”点击第2个输入拼音“er”点击第2个输入拼音“san”点击第2个二、笔画输入法状态用笔画输入“一”点击第2个用笔画输入“二”点击第2个用笔画输入“三”点击第2个..

    2025-02-28
  • 科技百科

    linux基础知识与文件系统简介

    文件系统对象结构查看分区信息查看超级块查看块组描述符表总结上面我们介绍了分区的内部结构如下图所示:Boot Sector: 前面已经介绍过,里面存储的是MBR或者GDT等系统启动的程序Super block:记录着磁盘上所有数据块组的信息以及数据块的大小、inode大小......一旦损坏,数 据丢失,需备份多次GDT:存储着每个块组的磁盘块..

    2025-02-28