MS09-037(KB973908)のWindows 2000用のアップデートファイルが間違っている件
最近 Debugger のログを見ていて気づいたのですが、このようなエラーが出ていました。
Running Ansi version of ATL.DLL on Windows NT : Slight Performace loss. Please install the UNICODE version on NT. |
懸命な方ならお気づきかもしれないが、先月の MS09-037(KB973908)アップデートでインストールされた ATL.DLLは Windows 2000用にコンパイルされたものではなく、 Windows 98/Me 用にコンパイルされたものなのである。
上が、アップデート前、下がアップデート後のファイルです。
どう見てもWin9x用です。
これを、修正するためには、XP用、又は Windows Server 2003 用の KB973908 をインストールする方法が有効です。
/x オプションで解凍後、XMLLITE などの UPDATE.EXE を拾ってきて、updfix で改造して、実行することでインストーラーを偽装可能です。
注意:アンインストールはできません。
なお、ファイルが58kになっていれば成功です。
関連記事:
Windows2000にmsconfig をインストールしてみよう
MS09-048 の修正が Windows2000で出ない理由
Windows 2000のMS09-045 の対応もおざなりな件
関連サイト:
ダウンロードの詳細 : Windows XP 用 XMLLite (KB915865)
マイクロソフト セキュリティ情報 MS09-037 - 緊急Microsoft ATL (Active Template Library) の脆弱性により、リモートでコードが実行される (973908)
FFXI(仮) ATLパニック
逆に9xに使えたりしないだろうか
とっくに使うのやめたけど
多分使えます。
ttp://support.microsoft.com/kb/249233/ja
Windows2000用のMS09-037(KB973908)を普通に当ててデグったあとで、上記のatl.cabを以ってatl.dllを更新するのが、UNICODE版に戻すもっとも手早い手段になるかもしれません。
diffはとっていませんが、atl.cabで導入されるatl.dllのタイムスタンプはXP用KB973908に付帯するものと日付レベルで同一(2009年7月18日)でした。
#時刻には数十分の差がそれぞれありますが、この差異はSI時のちょっとしたコンパイルタイミングの違いによる産物だろうと適当に想像(別々にスクリプトながしたのかなあ、と)。よくあることです(えっ