Двоичная база данных выровнена или упакована - PullRequest
0 голосов
/ 11 октября 2008

Есть ли способ увидеть, с помощью шестнадцатеричного редактора или иным образом, данные в двоичном файле выровнены или упакованы, особенно для системы HPUX?

1 Ответ

1 голос
/ 11 октября 2008

Если вы знаете, что ищете, и можете распознать его в шестнадцатеричном дампе, вы можете сделать обоснованную оценку того, выровнены ли данные или нет, или они упакованы. Но во многих отношениях ваш вопрос остается без ответа. Откуда поступили данные? Почему вы не можете спросить человека (по-видимому, за рулем программы), как она была создана?

Если вы спрашиваете «какие инструменты я могу использовать для просмотра данных», вы можете рассмотреть следующие вопросы:

  • 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:
...