首页 / 科技百科

如何打开二进制文件

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.

猜你喜欢

  • 世界奇闻

    这百年来我们是如何探索宇宙的?

    深圳商报•读创客户端首席记者 魏沛娜宇宙学是什么?宇宙结构如何增长?在《百年宇宙学:我们对宇宙的百年探索》这本书中,天体物理学家、理论宇宙学家、普林斯顿大学教授詹姆斯·皮伯斯从历史和重要亲历者的视角出发,回顾了一个多世纪以来人类对宇宙认识的演进历程。此外,他还审视了感光底片、大型望远镜和巡天、太空探..

    2025-08-08
  • 明星秘密

    女明星“人设翻车”事件盘点:祸从口出如何毁掉事业?

    2025-08-08
  • 美食百科

    溜肝尖如何做又嫩又滑窍门

    熘肝尖,一道日常的家常菜。滑嫩的口感和猪肝特有的鲜甜的味道,不但好吃还非常下饭。但是,很多人都头疼这道菜,因为炒不好就老了,很硬邦邦的感觉,你也有同感吗,说到这道菜,对于我来说,更多的是充满儿时的回忆。因为在我小时候,猪肝相对于猪肉来说廉价很多。而又有丰富的营养,尤其是铁,锌,钙和蛋白质。还有一个关..

    2025-08-08
  • 美食百科

    南瓜球如何做外酥内软

    大家好,今天来跟大家分享一款适合秋天吃的小甜品——南瓜芝麻球。我的印象里南瓜是跟糯米粉特别搭的一种食材,我本身很喜欢吃那种糯叽叽的东西,几乎一切跟糯米,糯米粉有关的美食我都爱,其中南瓜饼是平常吃的最多的,很多的饭店的甜品页都能看到它,也几乎是我的必点项。南瓜饼也出了速冻款,买回家冷冻,吃的时候炸一炸..

    2025-08-08
  • 育儿百科

    产后记忆力下降如何办 产后改善记忆力三要点

    马麻在怀孕过程中,不只身体有变化而已,而是全身上下都有很大的变化,包括激素的变化,甚至脑袋也有「变化」!雌激素可以促进子宫血液循环、血流量增加,让子宫成为适合胎儿成长的安全环境。「脑袋变化」本来就是大脑重塑,这也是孕期的其中一个过程。荷兰的研究员曾利用MRI(核磁共振)来追踪扫描孕妇的脑部变化,结果发现孕..

    2025-08-07
  • 育儿百科

    吸乳器如何选购 喂母乳基本常识

    妈咪们都知道母乳对宝贝最好,可以让宝贝有最天然的乳源,还能有好的抵抗力,但随着乳汁分泌越来越多,宝贝没办法一次喝完,或是妈咪生完宝贝就必须回职场工作,无法随时亲喂母乳,这时就需要以机器模拟宝贝吸吮动作与频率的吸乳器来协助妈咪把多余的乳汁挤出来,吸乳器便成为哺喂宝贝的最佳帮手!源源不绝的乳汁亲自哺喂母..

    2025-08-07
  • 育儿百科

    怀孕后腰酸背痛如何缓解症状 腰酸背痛产生的真相

    怀孕后腰酸背痛如何缓解症状怎么让腰酸背痛的症状轻一些,孕妈妈平常生活中正确的护理措施是相当主要的。比如以下建议,对你可能有用:坐姿:尽量不弯腰或长久站立,坐下时臀部要在座位中心,腰部可以放一个小靠垫。卧姿:采取侧卧位,双腿屈曲,可缓解腰背部的压力,使腰背部肌肉得到有效放松。下床:不要平躺起身,应在手..

    2025-08-07
  • 育儿百科

    秋季幼儿怎么预防感冒?秋季幼儿感冒如何办,

    2、春捂秋冻,预防感冒穿衣多少是关键天气由暖变冷,不要急于给孩子添加衣服。天气一天比一天冷,加上后就不好减掉了,只能是越加越多。小宝宝穿衣,可遵循比大人多一件的原则,运动时注意及时穿脱衣物。3、宝宝增强抵抗力第一课:耐寒锻炼很多宝爸宝妈,98迷吧,惟恐宝宝冻着,天气一凉,就不让出屋。宝宝呼吸道长期不接受..

    2025-08-06

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制