首页 / 科技百科

如何打开二进制文件

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.

猜你喜欢

  • 蒋劲夫前女友清空ins,家暴究竟是如何发展起来的?

    最近的娱乐圈一直都不怎么安定,又发生了一件大事,那就是蒋劲夫和前女友发生了矛盾,传闻还有家暴的现象。那么蒋劲夫和蒋劲夫前女友清空ins之间到底发生了什么了?小编也感到好奇,让我们一起去一探究竟。 蒋劲夫对前女友的家暴话说蒋劲夫是娱乐圈里的一名有实力的演员,他竟然会实施家暴,这到底是不是真的呢?近日,蒋劲..

    2025-07-09
  • 母婴百科

    如何分析婴儿啼哭的原因

    婴儿啼哭是最引人注意的信号,也是婴儿表达自己意愿的唯一方式,有经验的母亲可以准确地判断婴儿啼哭的原因,并作出恰当的处理。引起婴儿啼哭的原因主要有三:饥渴、不适、寂寞。不同原因引起的啼哭有着不同的特点,也应该给予不同的处理方法。1、饥饿性饥饿性啼哭一般是断续的,哭闹几声之后,便张着大嘴左右探寻奶头,有..

    2025-07-09
  • 母婴百科

    如何正确的清理宝宝的鼻屎

    宝宝的鼻子很脆弱,如果清理鼻屎时不注意,或者方法不对都会给宝宝带来伤害,所以在给宝宝清理鼻屎时要小心意外,还要注意这些事项。一、不要硬抠:不要用指甲或者棉签硬抠宝宝的鼻屎,这样很容易捅破宝宝的鼻腔,给宝宝造成伤害。二、热敷:平时可以反复给宝宝热敷鼻子,这样鼻屎会软化,清理起来会更加容易,也不会弄疼宝..

    2025-07-09
  • 母婴百科

    育儿技巧新生儿如何战胜红屁屁

    闺蜜和婆婆闹起了别扭,婆婆更是一气之下回了乡下老家。原来闺蜜家的小宝宝得了红屁屁,闺蜜心疼的不得了。稍带埋怨的说了句"妈,你看还是用尿不湿的好,这尿布换的不及时孩子很容易得红屁屁!"婆婆看着孩子的屁股也是很心疼,但是嘴上毫不示弱的说:"我儿子小时候就用的尿布也没问题,现在的年轻人就是矫情!"闺蜜听后更加..

    2025-07-09
  • 排行榜

    电饭煲如何选购?2025销量排行榜TOP5汇总!

    现代智能电饭煲能够依据不同种类的米和用户的个人喜好进行智能化设置,大大的简化了我们的日常生活。然而,市场上存在众多品质低劣的品牌,其产品并未达到食品级的安全标准,使用了劣质材料,操作复杂,煮出的米饭口感不佳,且在高温烹饪时会散发出有毒的物质,带来严重的安全隐患。那么,电饭煲如何选购?为此,我整理了一..

    2025-07-07
  • 时尚百科

    小米智能运动鞋如何洗

    跑步、快走等一些利用周边环境或是场地进行运动的健身是最省钱的方式之一,也受到人们越来越多的喜爱与参与。那么,拥有一双舒适、轻便、透气的运动鞋就显得相当重要了。在这里为大家介绍一款有品最新上架的米家运动鞋3,一起来看看。米家运动鞋3采用的是一片式立体全橡筋飞织鞋面,这是为了保证鞋面能够适用不同人群的脚型..

    2025-07-06
  • 男人走路外八性格如何 走路外八的男人好吗

    男人走路外八性格很好1316世界之最。从一个人走路的方式也能看出来这个人的性格特点以及带来的各方面运势。男人走路外八性格如何走起路来有点外八的男人性格方面还是很不错的。这种男人非常细心敏感,而且特别的爱干净,身边的一切东西都能放在合适的位置,自身所处的环境会打扫的特1316世界之最别干净。这种性格用在工作上..

    2025-07-06
  • 中庭短的人命运如何 下庭长的人运势好吗

    中庭短的人命运一般,下庭长的人运势好。很多人都不知道中庭和下庭是什么意思,在面相学中人的面相可以分成三个部分,也就是所谓的三庭,其中上庭指的是头发额头眉毛,中庭指的是鼻子颧骨和眼睛,而下庭则代表着下巴两腮以及嘴巴。中庭短的人命运如何在面相学中,中庭代表着一个人的事业运势,性格方面,以及个人能力和财运..

    2025-07-06

微信分享

微信分享二维码

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

链接已复制