LSASS.EXE を Userdump ツールでデバッグしてみたよ

dmp7

Windows 2000に tspkg.dll を組み込んだところ、イベントログが 5000はいて落ちてることが分かったので、 Userdumpツールで強制的にダンプファイルを吐き出させることにしました。

LsaSrv イベント 5000 認証パッケージを無効にします。
Userdump.exe を使用してダンプ ファイルを確認する方法
Download User Mode Process Dumper Version 8.1 from Official Microsoft Download Center

dmp6
ツールの設定画面

dmp5
設定したら再起動

dmp4
よく分からない STOP: 0x0000CAFF というのが出た・ω・

dmp1
クラッシュダンプができたのでWindbgで開いてみる。

まず、イベントログ通り 0x073004cで 0xc0000005 アクセスバイオレーションを起こしてるのを確認。
多分、どこかのアドレスから飛ばされてきたと推測できるので、ESP(0x00c5fc08)を見てみる

dmp2

値は 0x6d826f57

 6D826F3B                           SUB_L6D826F3B:
 6D826F3B  8BFF                              mov    edi,edi
 6D826F3D  55                                push    ebp
 6D826F3E  8BEC                              mov    ebp,esp
 6D826F40  833DC8C4826D01                    cmp    dword ptr [L6D82C4C8],00000001h
 6D826F47  FF7508                            push    [ebp+08h]
 6D826F4A  750F                              jnz    L6D826F5B
 6D826F4C  A1BCC4826D                        mov    eax,[L6D82C4BC]
 6D826F51  FF90C0000000                      call    [eax+000000C0h]
 6D826F57  8BD0                              mov    edx,eax
 6D826F59  EB26                              jmp    L6D826F81
 6D826F5B                           L6D826F5B:

call 文で死んでるんだけど、前の eax に代入された 0x6d72c4bc番地を見てみると 0x785AF730が入っていて、そこから +0xc0 のオフセットアドレスを参照している

LMコマンドでモジュール一覧をチェック

dmp3
lsasrv であることが分かりました。

 L785AF730:
         dd    SUB_L785541C2
         dd    SUB_L78572A0D
         dd    L78552EE9
         dd    L7857961B
         dd    L7857979E
         dd    SUB_L7854CE0E
         dd    SUB_L7854CDF0
         dd    SUB_L7854DC36
         dd    SUB_L78562D7D
         dd    SUB_L7854DC6A
         dd    SUB_L7854DC56
         dd    SUB_L7856D503
         dd    L7856D18B
         dd    SUB_L7856D4C5
         db    00h;
         db    00h;
         db    00h;
         db    00h;
         dd    SUB_L7856D6C4
         dd    SUB_L7856D718
         dd    LsaIRegisterNotification
         dd    LsaICancelNotification
         dd    SUB_L7856DA4C
         dd    SUB_L78569FC5
         dd    L78573520
         dd    LsaICallPackage
         dd    LsaIFreeReturnBuffer
         dd    LsaIGetCallInfo
         dd    LsaICallPackageEx
         dd    L7856A400
         dd    L7856A47A
         dd    L7856A4D9
         dd    L7856A532
         dd    SUB_L7856A7A4
         dd    L7856A96D
         dd    L7856A975
         dd    L7856A960
        
; dd    L7856AD8D
         dd    L7856DBE9
         dd    L7856DC3A
         dd    L7856AE94
         dd    L7856B0C6
         dd    LsaIAuditAccountLogon
         dd    LsaICallPackagePassthrough
         dd    00000000h
 L785AF7D8:

 0x785AF730は、残念ながら、Windows 2000ではサイズ 0xa4 バイトの構造体だから、 +0xc0参照したら範囲外なんだ ・ω・;

 L7DF00088:
         dd    SUB_L7DE89DA1
         dd    SUB_L7DEB5758
         dd    L7DE83C18
         dd    L7DE6DDFA
         dd    L7DEBAB81
         dd    SUB_L7DE630AB
         dd    SUB_L7DE63086
         dd    SUB_L7DE69886
         dd    SUB_L7DEAF18D
         dd    SUB_L7DE698AF
         dd    SUB_L7DE8C7E1
         dd    LsaIImpersonateClient
         dd    L7DEB21A6
         dd    SUB_L7DE6E7D2
         db    00h;
         db    00h;
         db    00h;
         db    00h;
         dd    SUB_L7DE8D8EB
         dd    SUB_L7DE69547
         dd    LsaIRegisterNotification
         dd    LsaICancelNotification
         dd    SUB_L7DE6B136
         dd    SUB_L7DEB0C81
         dd    SUB_L7DE89A1B
         dd    LsaICallPackage
         dd    LsaIFreeReturnBuffer
         dd    LsaIGetCallInfo
         dd    LsaICallPackageEx
         dd    L7DEB0F06
         dd    L7DEB0E24
         dd    L7DEB0E81
         dd    L7DEB0F87
         dd    SUB_L7DEB1299
         dd    L7DEB1484
         dd    L7DEB1491
         dd    L7DEB146D
         dd    L7DEB1897
         dd    L7DEB23B7
         dd    L7DEB2528
         dd    L7DEB19A8
         dd    L7DEB1BCC
         dd    LsaIAuditAccountLogon
         dd    LsaICallPackagePassthrough
         dd    SUB_L7DEA3A2B
         dd    SUB_L7DE6DE5C
         dd    SUB_L7DEA3AF6
         dd    SUB_L7DE6FEC5
         dd    SUB_L7DE6FFC7
         dd    L7DE6E817
         dd    L7DEB1EF4
         dd    LsaIAllocateHeapZero
         dd    LsaIFreeHeap
         dd    SUB_L7DE89F03
         dd    SUB_L7DEA3875
 L7DF00158:

こっちは、Windows XP。構造体サイズは 0xd0あることが分かるね。

+ 0xc0は LsaIAllocateHeapZero であることが分かったね ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です