二进制数据库已对齐或已打包

时间:2008-10-10 20:58:03

标签: hex alignment

有没有办法通过十六进制编辑器或其他方式查看二进制文件中的数据是否已对齐或打包,特别是对于HPUX系统?

1 个答案:

答案 0 :(得分:1)

如果您知道要查找的内容并且可以在十六进制转储中识别它,那么您可以对数据是否对齐或打包做出明智的估计。但在许多方面,你的问题是无法回答的。数据来自哪里?为什么你不能问这个人(大概推动一个程序)是如何创建的?

如果您问“我可以使用哪些工具查看数据”,那么您可以考虑:

  • od(八进制转储 - 可能也使用-c选项)
  • hd(十六进制转储 - 并非始终可用,并且似乎在HP-UX上不存在)
  • sed l(这是一个小写的椭圆 - 它意味着列出数据;除非大多数数据是纯文本,否则不是一个好的选择)

或者你可以用Perl来做。很久以前(1987年左右),我写了一个程序odx(十六进制中的八进制转储 - 奇怪),我继续使用它 - 它给了我一个十六进制转储,每行16个字节,加上可打印字符的图像。这个例子并不是很令人兴奋(odx自行运行 - 在Sun Sparc上):

Black JL: odx odx | sed 10q
0x0000: 7F 45 4C 46 01 02 01 00 00 00 00 00 00 00 00 00   .ELF............
0x0010: 00 02 00 12 00 00 00 01 00 01 0D 84 00 00 00 34   ...............4
0x0020: 00 00 77 9C 00 00 01 00 00 34 00 20 00 05 00 28   ..w......4. ...(
0x0030: 00 24 00 23 00 00 00 06 00 00 00 34 00 01 00 34   .$.#.......4...4
0x0040: 00 00 00 00 00 00 00 A0 00 00 00 A0 00 00 00 05   ................
0x0050: 00 00 00 00 00 00 00 03 00 00 00 D4 00 00 00 00   ................
0x0060: 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 04   ................
0x0070: 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00   ................
0x0080: 00 00 00 00 00 00 22 86 00 00 22 86 00 00 00 05   ......"...".....
0x0090: 00 01 00 00 00 00 00 01 00 00 22 88 00 02 22 88   .........."...".
Black JL: