Мусорные шестнадцатеричные байты в файле wtmp

Я пытаюсь извлечь историю загрузки и регистрации для тестового ПК с RHEL 5.8 с некоторыми обновлениями ядра. Я начал с использования last -f /var/log/wtmp и заметил некоторые странные результаты. Дальнейшее исследование показало, что в файл записаны большие блоки шестнадцатеричных данных, которые не соответствуют формату utmp.

Эти блоки выглядят как значения ASCII, так как существует несколько сотен байтов с значениями ASCII. например, 0a30 7831 6234 6636 3762 652c 0930 7839 3562 3037 который равен 0x1b4f67be,.0x95b07 взятому из неиспользуемых окончательных 20 байтов в структуре.

Я продолжал расследование, и текст ASCII соответствует некоторому тексту, который распечатывается во время загрузки – это похоже на вывод из dmesg . Также текст, который печатается на экране при запуске моей программы, и я видел файлы из файла конфигурации, который читается во время запуска.

Я подозреваю, что нулевые разделы создаются agetty на последовательном порту, так как файл wtmp растет каждую минуту. Если я прокомментирую строку в i/etc/inittab

 7:2345:respawn:/sbin/agetty -h -t 60 ttyS0 115200 vt102 

то wtmp перестает расти.

Может произойти столкновение с файловой системой. Я посмотрел на i-узлы, и они, похоже, не разделяются.

Структура utmp содержит некоторые строковые значения, но в большинстве случаев она устанавливается равной нулю.

Что вызовет эти записи? Означает ли это, что на wtmp нельзя полагаться? Есть ли способ дешифрования этих записей, если они являются подлинными?

Ниже приведены некоторые выдержки из файла wtmp, вставленного из шестнадцатеричного редактора,

Последняя разумная запись с выходом в соответствии с last :

root tty1 Fri Nov 29 10:19 - crash (00:03)

 00312300: 0700 0000 850b 0000 7474 7931 0000 0000 ........tty1.... 00312310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312320: 0000 0000 0000 0000 3100 0000 726f 6f74 ........1...root 00312330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003123f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312400: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312410: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312420: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312430: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312440: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312450: 0000 0000 3e6a 9852 89b0 0000 0000 0000 ....>jR....... 00312460: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312470: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 

то записи полностью нулевые и не отображаются last :

 00312480: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312490: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003124f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312500: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312510: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312520: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312530: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312540: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312550: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312560: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312570: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312580: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312590: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003125f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 

пока не появится блок данных ASCII, записанных в файл. Это начинается частично через структуру utmp и также не выводится из last

 00312f00: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f10: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f20: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f30: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f40: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f50: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f60: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f70: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f80: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312f90: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312fa0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312fb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312fc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312fd0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312fe0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00312ff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00313000: 0930 7862 3130 3264 6131 332c 0a30 7830 .0xb102da13,.0x0 00313010: 3939 6264 3532 392c 0930 7863 6634 3364 99bd529,.0xcf43d 00313020: 3936 312c 0930 7838 3235 6336 3331 662c 961,.0x825c631f, 00313030: 0930 7863 6233 6662 3130 372c 0a30 7865 .0xcb3fb107,.0xe 00313040: 3336 3265 3739 392c 0930 7866 3231 3362 362e799,.0xf213b 00313050: 3730 642c 0930 7830 3133 6537 3465 622c 70d,.0x013e74eb, 00313060: 0930 7832 3039 3539 6335 652c 0a30 7865 .0x20959c5e,.0xe 00313070: 3166 6663 6631 642c 0930 7865 6532 6438 1ffcf1d,.0xee2d8 

а затем большее количество байтов ASCII, которое интерпретируется last как следующее.

27dba1f, 4f6fe3c,*0xe 0xed51abc6,*0xf Sun Oct 8 21:09 - crash (6626+14:13)

 00313080: 3232 382c 0930 7865 3466 3666 6533 632c 228,.0xe4f6fe3c, 00313090: 0930 7865 6139 6531 6135 322c 0a30 7862 .0xea9e1a52,.0xb 003130a0: 3035 3935 6366 372c 0930 7863 3237 6462 0595cf7,.0xc27db 003130b0: 6131 662c 0930 7865 6339 3866 3162 612c a1f,.0xec98f1ba, 003130c0: 0930 7835 6135 3465 3261 632c 0a30 7865 .0x5a54e2ac,.0xe 003130d0: 6435 3161 6263 362c 0930 7866 6536 3361 d51abc6,.0xfe63a 003130e0: 3364 352c 0930 7866 3932 3161 3831 352c 3d5,.0xf921a815, 003130f0: 0930 7837 3732 3239 6262 662c 0a30 7837 .0x77229bbf,.0x7 00313100: 3032 3230 3363 392c 0930 7861 6337 6166 02203c9,.0xac7af 00313110: 3635 392c 0930 7834 3632 6639 3338 362c 659,.0x462f9386, 00313120: 0930 7863 3562 3834 3630 622c 0a30 7862 .0xc5b8460b,.0xb 00313130: 6231 6166 3862 382c 0930 7839 3238 3065 b1af8b8,.0x9280e 00313140: 6161 622c 0930 7861 3361 3265 3639 332c aab,.0xa3a2e693, 00313150: 0930 7861 3565 3231 3361 362c 0a30 7832 .0xa5e213a6,.0x2 00313160: 6130 6262 3861 322c 0930 7865 6639 3362 a0bb8a2,.0xef93b 00313170: 3061 632c 0930 7835 3936 3537 3530 352c 0ac,.0x59657505, 00313180: 0930 7839 3066 6632 6366 362c 0a30 7864 .0x90ff2cf6,.0xd 00313190: 3931 3564 6438 322c 0930 7864 6135 3061 915dd82,.0xda50a 003131a0: 3337 332c 0930 7834 6338 3936 3137 612c 373,.0x4c89617a, 003131b0: 0930 7834 6435 3465 3832 662c 0a30 7865 .0x4d54e82f,.0xe 003131c0: 3237 6161 6537 322c 0930 7839 6230 6237 27aae72,.0x9b0b7 003131d0: 6234 312c 0930 7830 3264 6263 3863 352c b41,.0x02dbc8c5, 003131e0: 0930 7865 3134 6532 6139 372c 0a30 7831 .0xe14e2a97,.0x1 003131f0: 6234 6636 3762 652c 0930 7839 3562 3037 b4f67be,.0x95b07 

Этот блок продолжается до тех пор, пока не будут захвачены следующие блоки utmp, которые отображаются last как

reboot system boot 2.6.30.9 Fri Nov 29 10:23 (340+04:17)

 00315900: 0800 0000 2302 0000 0000 0000 0000 0000 ....#........... 00315910: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315920: 0000 0000 0000 0000 7369 0000 0000 0000 ........si...... 00315930: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315940: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6. 00315950: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............ 00315960: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315970: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315980: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315990: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 003159f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a00: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a10: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a20: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a30: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a40: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a50: 0000 0000 1f6b 9852 b481 0600 0000 0000 .....kR....... 00315a60: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a70: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315a80: 0200 0000 0000 0000 7e00 0000 0000 0000 ........~....... 00315a90: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315aa0: 0000 0000 0000 0000 7e7e 0000 7265 626f ........~~..rebo 00315ab0: 6f74 0000 0000 0000 0000 0000 0000 0000 ot.............. 00315ac0: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6. 00315ad0: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............ 00315ae0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315af0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b00: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b10: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b20: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b30: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b40: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b50: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b60: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b70: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b80: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315b90: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315ba0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315bb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315bc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315bd0: 0000 0000 1f6b 9852 ce16 0700 0000 0000 .....kR....... 00315be0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00315bf0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 

Записи ощутимо снова на некоторое время, а затем отображать аналогичные данные ASCII.

3 Solutions collect form web for “Мусорные шестнадцатеричные байты в файле wtmp”

Это двоичный файл, который считывается, например, last (по умолчанию используется /var/log/wtmp , вы также можете указать другую цель с -f ).

Таким образом, независимо от того, есть ли последняя разумная запись, все зависит от того, как последний реализует доступ к файлу и как он их использует (фиксированное количество записей с фиксированной длиной, доступ к которым доступно в круглом доступе в режиме robin, например, один вариант).

Файлы wtmp и utmp представляют собой двоичные файлы, а не ASCII. Поэтому вы ожидаете увидеть данные, отличные от ASCII. Если вы хотите прочитать их, используйте last команду. Если эта команда работает, то файл в порядке.

Пример формата можно найти в man 5 wtmp , который можно прочитать здесь .

На этой странице также упоминается следующее:

Обратите внимание, что utmp struct из libc5 изменилась в libc6. Из-за этого двоичные файлы, использующие старую структуру libc5, будут повреждены / var / run / utmp и / или / var / log / wtmp.

Если last не удается, возможно, это может объяснить ваш искаженный гексагон?

В конце концов я отследил его.

В системе есть сторожевой таймер, который перезагружает систему, если он не может связаться с определенными процессами. Проблема заключалась в том, что мое приложение было убито с помощью SIGTERM или SIGKILL и сначала не отключилось от сторожевого таймера, которое оно делает, если используется SIGINT.

Эта перезагрузка во время выключения записывает эти опасные байты в wtmp. Теперь я написал сценарии запуска и завершения работы в /etc/init.d и установил ссылки в rc # .d с помощью chkconfig, и проблема исчезла /

Linux и Unix - лучшая ОС в мире.