Windows 2000のSENS.DLL が Symantec のセキュリティソフトと相性が悪い件

svchost.exe が 原因不明のクラッシュを起こすので調査をしてみました

          mov    eax,[L76118234] <- なぜか、定数が代入される
          cmp    eax,edi
          jz     L761131E0
          lea    ecx,[ebp-08h]
          mov    [ebp-08h],edi
          push    ecx
          lea    ecx,[ebp-0Ch]
          push    ecx
          mov    [ebp-10h],edi
          lea    ecx,[ebp-0000078Ch]
          mov    edi,0000054Ch
          push    ecx
          lea    ebx,[ebp-0000078Ch]
          mov    [ebp-0000078Ch],edi
          mov    [ebp-0Ch],edi
          call    eax <- 定数アドレスに飛ぶのでクラッシュ

原因は SENS.DLL にあることが判明

アドレス 0x76118234,0x76118238 のデータが破損することが分かります

 SUB_L761132D1:
          cmp    dword ptr [L76118234],00000000h
          push    esi
          push    edi
          jz     L761132DF
 L761132DC:
          pop    edi
          pop    esi
          retn
;------------------------------------------------------------------------------
 L761132DF:
          push    SWC7611387C_RasApi32_dll
          call    [KERNEL32.DLL!LoadLibraryW]
          mov    edi,eax
          test    edi,edi
          jz     L761132DC
          mov    esi,[KERNEL32.DLL!GetProcAddress]
          push    SSZ76113868_RasEnumConnectionsW
          push    edi
          call    esi
          push    SSZ7611384C_RasConnectionNotificationW
          push    edi
          mov    [L76118234],eax
          call    esi
          cmp    dword ptr [L76118234],00000000h
          mov    [L76118238],eax
          jnz    L761132DC
          jmp    L761159CC

本来はゼロセットされてるので、値が初期化されてるべきなのですが
定数20 ~ 1000 位の値が入ってることがあって初期化処理を通らないようなのです。

そこで、試しに、 XP の sens.dll を使ってみたところ、落ちなくなりました・ω・;

Win2000のSENS.DLL が Symantec のセキュリティソフトと相性が悪い件 その2

おすすめ

コメントを残す

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