使用xxd

时间:2018-07-15 18:33:49

标签: memory binary hex data-conversion

我从读取32768字节大小的内存区域创建的内存转储中得到了十六进制文件。

... ... ....
80001174: aaaa aaaa  aaaa aaaa  aaaa aaaa  27bd ff80 | ............'...
80001184: afa1 0004  afa2 0008  afa3 000c  afa4 0010 | ................
80001194: afa5 0014  afa6 0018  afa7 001c  afa8 0020 | ............... 
800011a4: afa9 0024  afaa 0028  afab 002c  afac 0030 | ...$...(...,...0
800011b4: afad 0034  afae 0038  afaf 003c  afb0 0040 | ...4...8...<...@
800011c4: afb1 0044  afb2 0048  afb3 004c  afb4 0050 | ...D...H...L...P
800011d4: afb5 0054  afb6 0058  afb7 005c  afb8 0060 | ...T...X...\...`
800011e4: afb9 0064  afbc 0070  afbe 0078  afbf 007c | ...d...p...x...|
800011f4: 3c1a 8045  275a 1024  0340 f809  0000 0000 | <..E'Z.$.@......
80001204: 8fa1 0004  8fa2 0008  8fa3 000c  8fa4 0010 | ................

我尝试将十六进制转储转换为二进制文件使用命令

xxd -r -p test.log file.bin

,但是创建的二进制文件大小为40968字节,超过了预期的大小32768字节。转换有什么问题?

1 个答案:

答案 0 :(得分:0)

您的hex文件似乎不是普通的hex文件,因为它在文件中也列出了“偏移”。

如果您有一个纯正的十六进制文件,但其中没有任何偏移,则

xxd将进行正确的转换。

如果您可以再次生成十六进制文件,请以纯格式执行,否则,您可以使用notepad ++打开此十六进制文件,并删除带有地址的整列。