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

有帮助吗?

解决方案

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

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

  • od(八进制转储 - 可能也带有 -c 选项)
  • hd(十六进制转储 - 并不总是可用,并且在 HP-UX 上似乎不存在)
  • sed l(小写的 ell - 表示列出数据;除非大部分数据是纯文本,否则这不是一个好的选择)

或者你可以用 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:
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top