ただいま解析中

先日から解析している Event Log ですが、ある程度目星がついたので掲載。
悩んでたログを吐くソフトウェアって、実は ServerProtect のことだったんです。なのでそのログを解析してみました。

こちらが、ServerProtect が吐いた Event Log です。

Data Size  : 0x00000070
Date A     : 0x404C5D09
Date B     : 0x404C5D09
Event ID   : 0x0035 (53)
????       : 0x8007 (32775)
Type       : 0x0002 (警告)
Str. Num   : 0x0000 (0)
Category   : 0x0007 (7)
strpt      : 0x00000068
sidsz      : 0x0000000C
sidpt      : 0x0000005C
datsz      : 0x00000000
datpt      : 0x00000068
Source     : "SpntLog"
Computer   : "HOGE-HOGE"
User SID   : "S-1-1-18"

こちらは、logwrite2.exe (monyo.com) を使って吐いた Event Log。

Data Size  : 0x00000064
Date A     : 0x404C5D73
Date B     : 0x404C5D73
Event ID   : 0x0035 (53)
????       : 0x4000 (16384)
Type       : 0x0004 (情報)
Str. Num   : 0x0001 (1)
Category   : 0x0007 (7)
strpt      : 0x0000005C
sidsz      : 0x00000000
sidpt      : 0x0000005C
datsz      : 0x00000000
datpt      : 0x0000005E
Source     : "SpntLog"
Computer   : "HOGE-HOGE"
strings 00 : ""

どちらも解析用に自分で作ったツールでバイナリ ダンプしてます。
決定的に違うのは、???? と書いたところ (Event Log では、各情報開始位置から、0x16 byte 目の 2 byte データになります) です。他のデータも見てみると、このデータが 0x0000 であったり 0x4000 であったりするケースは多く見受けるのですが、 0x8007 っていういのは無いんですよ。一体何のデータなんでしょうね、ここは・・・。
で、このデータなんですが、0x0000 の場合はどうも「説明」に Strings 00 に指定したメッセージがそのまま表示されているみたいなんです。すなわち、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services - \Eventlog\Application

レジストリに記録されている DLL を参照していないで、説明を表示する、という荒業 (でもないか (苦笑) ) をやってのけるためのおまじないみたいなんですね。
さて、一体どうやって指定するのやら・・・。