我从读取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字节。转换有什么问题?
答案 0 :(得分:0)
您的hex文件似乎不是普通的hex文件,因为它在文件中也列出了“偏移”。
如果您有一个纯正的十六进制文件,但其中没有任何偏移,则xxd将进行正确的转换。
如果您可以再次生成十六进制文件,请以纯格式执行,否则,您可以使用notepad ++打开此十六进制文件,并删除带有地址的整列。