首页 / 科技百科

如何打开二进制文件

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.

猜你喜欢

  • 百科大全

    螃蟹怎么保存在冰箱里螃蟹如何保鲜

    3、螃蟹怎么保存在冰箱里可以将螃蟹的脚和钳子捆起来,然后放进冰箱的冷藏室,盖上湿毛巾保存即可,或者将螃蟹用沸水煮熟、放凉,再用保鲜袋或密封盒装好放入冰箱里冷冻保存。螃蟹怎么保存在冰箱里螃蟹放入冰箱冷藏保存一般可以存放3-4天,放置超过一个星期,螃蟹基本上就会死掉了。一般来说,死螃蟹是不能吃的,因为螃蟹死..

    2025-04-30
  • 旅游百科

    新手如何挑选一把紫砂壶呢

    宜兴紫砂壶的伺茶性早被发掘和认可,明代周高起在紫砂专著《阳羡茗壶系》开创篇中言“以本山砂土,能发真茶之色香味”,明代李渔评壶“茶壶以砂者为上,盖既不夺香又无熟汤气”这也是大家喜欢紫砂壶的原因。很多喝茶的朋友对紫砂壶跃跃欲试,想选购一把合适的紫砂壶,但是又不知道何从着手,因不了解紫砂壶,紫砂壶水深,不..

    2025-04-30
  • 热点百科

    专访高科数聚首席执行官董琳:如何从场景出发拨开车企数据变现迷雾

    接受采访时,高科数聚首席执行官董琳正在去往上海虹桥火车站的路上。春节过后,董琳一下子忙了起来,紧凑的行业会议和客户走访行程使得她很少能在北京公司总部露面。如今的汽车市场和十多年前相比发生了翻天覆地的变化,在这风云激荡的年代,个人也会面临各种选择。对于走出相对稳定的汽车厂家体系,来到创业公司面临更多不..

    2025-04-28
  • 娱乐百科

    房产中介是如何双向谈价格的

    事情起因近日,某房地产中介的经纪人爆料,自己曾于2019年6月21日、22日两次带领谢娜、张杰夫妇去上海思南公馆看房。当时谢娜、张杰夫妇以“不喜欢”为由没有成交,可后来这位经纪人发现,两人竟私下绕过自己购买了这套房子,且已于2020年2月完成过户手续。按市场成交价估算,这套豪宅的售价约6200万元,中介费可能就高达18..

    2025-04-28
  • 历史百科

    关平在正史中的形象怎么?最终是如何死的?

    关平在三国演义中的表现丝毫不必关羽差,他武勇过人,能与曹魏猛将庞德大战三十回合不分胜负,还跟随刘备一起出征西川立下汗马功劳,之后还与关羽一起镇守着荆州。在襄樊之战中关平沉着冷静的性格也帮助关羽躲过了一劫,他的戏份虽然不多,但是形象鲜明给人留下了很深刻的印象。在正史中关平并不是关羽的义子,而是关羽的长..

    2025-04-25
  • 世界最小

    还记得14年前“世界最小婴儿”吗?全身还没巴掌大,她现状如何

    01在怀孕期间,准妈妈们需要格外小心,因为稍有不慎就可能导致早产。还记得18年前的“世界最小婴儿”吗?那位母亲在怀孕21周时早产,生下了一个体重不足一斤的小宝宝,比成年人的手掌还要小。当时,大家都认为这个小婴儿无法生存,但令人意外的是,宝宝展现出了强烈的求生意志,用尽全力呼吸和哭泣。正因如此,医生们也被小..

    2025-04-24
  • 历史百科

    贺人龙是哪位?他贺疯子的称号是如何来的?

    贺人龙是明朝末年时期的名将,朱由检年间参与过镇压农民起义活动,作战悍勇,人称贺疯子。今天小编带来了一篇文章,希望你们喜欢。他一生中的大部分时间都是在和农民起义军作战,可谓是死敌。从籍贯上来说,贺人龙和闯王李自成等大部分农民起义军领导人都是陕西米脂老乡,可他在和农民起义军作战时却从没有考虑过手下留情,..

    2025-04-24
  • 历史百科

    宋朝为什么没有宦官问题 宋朝是如何管理宦官的

    宋朝重文轻武,又有宦官监军,宋朝为什么没有出现宦官专权这个问题?这是很多读者都比较关心的问题,接下来就和各位读者一起来了解,给大家一个参考。在历史强盛的王朝中,影响最大或者是直接威胁到皇权最大的隐患就是宦官问题,其中影响最大的王朝是汉朝,唐朝和明朝。宋朝重文轻武,为何都没有出现宦官专权这个问题呢?我们..

    2025-04-24

微信分享

微信分享二维码

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

链接已复制