Windows XP のカーネル関数には未実装のものがある?

きっかけは、

ktdss

Virus-fighting utilities - PE Header problems (Windows 2000 Prof) - Kaspersky Lab Forum

ここに、Windows 2000なクレーマーさんを見つけたのが発端


Rootkit.Win32.TDSS ファミリーのマルウェアを削除する方法

カスペルスキーの公式サイトでは、ルートキットの削除ツールが無料公開されてるのですが、これがWin2000非対応になったのが原因。

Windows 2000で実行できるようにしても、

KERNEL32.DLL に GetFirmwareEnvironmentVariableW がないと何もしないで終了してしまいます

で、XPの GetFirmwareEnvironmentVariable が 内部で  NtQuerySystemEnvironmentValueEx を呼んでるのですが、これを調べて見ると、 常に 0xc0000002 を返す。 この値が(この関数は実装されていません)何ですよね

調べて見たところ、次の関数が、名前だけあって中身のない関数だったよ

NtAddBootEntry(0x09)
NtDeleteBootEntry(0x3d)
NtEnumerateBootEntries(0x46)
NtEnumerateSystemEnvironmentValuesEx(0x48)
NtModifyBootEntry(0x6d)
NtQueryBootEntryOrder(0x8c)
NtQueryBootOptions(0x8d)
NtQuerySystemEnvironmentValueEx(0xac)
NtSetBootEntryOrder(0xd3)
NtSetBootOptions(0xd4)
NtSetSystemEnvironmentValueEx(0xef)
NtTranslateFilePath(0x105)

そんなわけで、kdw 0.96iの 2kdll にこの関数 stub で追加してみたのでした

ktdss3
ちなみに、このツールは無事動いたよ|・ω・)ノ

おすすめ

1件の返信

  1. kunekune より:

    いつもお世話になっています。
    “kdw 0.96i”の”Kernel32.dll(5.1.2599.68)”を使うと
    いくつかのプログラムで”Visual C++がない”
    と言うようなエラーが出るようになりました。
    エラーでこけるプログラム
    GPU-Z.exe、Speccy.exe、Ncw.exe
    現在は、”Kernel32.dll(5.1.2599.67)”に差し替えて使っています

コメントを残す

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