Windows 2000のtaskmgr.exe にバグ

taskmgr.exe

 L0100329F:
          cmp    esi,00000005h
          ja     L01003313
          jz     L010032FB
          dec    esi
          dec    esi
          jnz    L0100376F
          mov    eax,[L0100D304]
          test    eax,eax
          jz     L010032C9  <- エラーの時は 0ではなく -1になるので jzではなく jl
          mov    eax,[L0100D800+eax*4]
          test    eax,eax
          jz     L010032C9
          mov    edx,[eax]
          mov    ecx,eax
          call    [edx+08h]

 L01004F52:
          mov    eax,[L01015ECC]
          test    eax,eax
          jz     L01004F75
          cmp    eax,FFFFFFFFh
          jz     L01004F75
          lea    eax,[L01015E78+eax*4]
          cmp    dword ptr [eax],00000000h
          jz     L01004F75
          mov    eax,[eax]
          mov    edx,[eax]
          mov    ecx,eax
          call    [edx+08h]

ちなみに、XP版。ちゃんと -1でチェックしてる
っていうか、jle(0x7e nn) にすればいいんじゃね?

          mov    edi,L01001E48
 L01009B4A:
          xor    eax,eax
          cmp    eax,[esi+20h]
          sbb    eax,eax
          neg    eax
          push    eax
          push    [edi]
          push    [esi+04h]
          call    [USER32.dll!GetDlgItem]
          push    eax
          call    [USER32.dll!EnableWindow]
          add    edi,00000004h
          cmp    edi,L01001E50
          jc     L01009B4A
          cmp    dword ptr [L0100D304],00000000h
          jnz    L01009BE0

こっちはXPも2000も同じバグがある(クラッシュはしないので大きな不具合ではない)

というわけで、KB839726 ベースで作ってみた修正版

Windows 2000 ターミナル サービス クライアント セッション中に タスク マネージャーの CPU (%) 列が更新されない

WLU からダウンロード可能

English/Francais/Italiano/中文繁体/日本語/日本語PC9821版/portugal/Deutsch が選択可能

おすすめ

4件のフィードバック

  1. 名無し より:

    WindowsLU-MS13-081B-x86-INTL.exeを適用しようすると、下記のエラーが表示されます。

  2. 名無し より:

    WindowsLU-MS13-081B-x86-INTL.exeを適用しようすると、下記のエラーが表示されます。

  3. 黒翼猫 より:

    以前記事にした、XP互換のUSBシステムに入れ替えてない場合は適用できないようになっています。

  4. 黒翼猫 より:

    以前記事にした、XP互換のUSBシステムに入れ替えてない場合は適用できないようになっています。

コメントを残す

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