Windows XP のタスクマネージャーには実はユーザータブがある

taskm
これは Windows XP のタスクマネージャーを1バイトだけ書き換えてWindows 2000で実行したもの。
見慣れたタスクマネージャーとちょこっと違います。

そう。ユーザータブがあるんです。

          mov    dword ptr [ebp-00000120h],0000011Ch
          call    [KERNEL32.dll!GetVersionExW]
          test    eax,eax
          jz     L01003EEF
          test    word ptr [ebp-08h],0110h
 // VER_SUITE_SINGLEUSERTS || VER_SUITE_TERMINAL

          jz     L01003EEF
          xor    edi,edi
          inc    edi
          cmp    byte ptr [ebp-06h],03h
          mov    [esi],edi
          jz     L01003EED
          cmp    byte ptr [ebp-06h],02h
          jz     L01003EED
          cmp    byte ptr [ebp-06h],01h
          jnz    L01003EEF
          cmp    word ptr [ebp-08h],0100h
          jnz    L01003EEF

実は GetVersionExW で システムがアプリケーションサーバモードで動いているかターミナルモードに対応してるか見て、そうでなければタブを作らないのです・ω・

書き換えるのは 322A:C1 -> 00 です(˘ω˘)

おすすめ

3件のフィードバック

  1. モニカ より:

    脳内CPUが無いから
    アドレスとバイナリ値のないアセンブリは
    わからにゃいです!
    Kernel32コールしたあとのtest jzがゲットバージョンの失敗で
    ExWなんて名前だからWord型で受け渡されるって認識であってるのかにゃ?

  2. 黒翼猫 より:

    >>1
    単にProductSuiteがWORD型なだけっす

  3. モニカ より:

    お返事ありがとです
    これとだいたいおんなじ?

コメントを残す

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