wtmp 文件中的垃圾十六进制字节

wtmp 文件中的垃圾十六进制字节

我一直在尝试提取运行 RHEL 5.8 并进行了一些内核更新的测试 PC 的启动和登录历史记录。我开始使用last -f /var/log/wtmp,并注意到一些奇怪的结果。进一步调查显示,文件中写入了大块十六进制数据,这些数据与 utmp 格式不匹配。

这些块看起来是 ASCII 值,因为有数百个字节具有 ASCII 值。例如,0a30 7831 6234 6636 3762 652c 0930 7839 3562 30370x1b4f67be,.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  ....>j.R........
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  .....k.R........
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  .....k.R........
00315be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00315bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

条目暂时再次有意义,然后显示类似的 ASCII 数据。

答案1

这是一个由例如读取的二进制文件last(默认为/var/log/wtmp,您也可以使用 指定另一个目标-f)。

因此,是否存在最后一个合理的条目完全取决于最后一个如何实现对文件的访问以及它如何使用它们(例如,一个选项是以循环方式访问的一轮中访问的具有固定长度的固定数量的记录)。

答案2

wtmp和文件utmp是二进制文件 - 不是 ASCII。因此您希望看到非 ASCII 数据。如果您想阅读它们,请使用该last命令。如果该命令有效,则该文件正常。

格式示例可以在 中找到man 5 wtmp,可以阅读这里

该页面还提到了这一点:

请注意,libc5 中的 utmp 结构在 libc6 中已更改。因此,使用旧 libc5 结构的二进制文件将损坏 /var/run/utmp 和/或 /var/log/wtmp。

如果last失败,也许这可以解释你的乱码十六进制转储?

答案3

我最终找到了它。

系统有一个看门狗,如果无法联系某些进程,它会重新启动系统。问题是我的应用程序被 SIGTERM 或 SIGKILL 杀死,并且没有首先与看门狗断开连接,如果使用 SIGINT,则会断开与看门狗的连接。

关机期间的重新启动会将这些奇怪的字节写入 wtmp。我现在已经使用 chkconfig 在 /etc/init.d 中编写了启动和关闭脚本,并在 rc#.d 中编写了设置链接,问题已经消失/

相关内容