アカウント名:
パスワード:
%systemroot%\system32\gdiplus.dll が古いバージョンのままなのは
サイド・バイ・サイドは良く知らないのですが、 この残っている古いDLLを使用してしまうアプリが無いのか気になります。
また、少なくとも、関連するDLLをロードしているアプリは再起動しないとセキュリティ・ホールを抱えたままになるわけですがそういったメッセージって出ませんでしたよね?
今回の更新では修正済みのgdiplus.dllへのリダイレクトを指示する新しい発行元構成ファイルもインストールされるため、通常「間違って」古いSide-by-Side DLLが使用されることはありません。詳しくは以下の資料をご覧ください。 共有アセンブリとアプリケーションへのサービスの提供 [microsoft.com]
そのため Side-by-Side アセンブリのインストールでは旧バージョンのDLLを上書きするのではなく、バージョンごとに異なるフォルダにインストールを行います。これにより旧 DLLを利用中のアプリケーションがあってもSide-by-Sideアセンブリのインストールは正常に終了します。
しかし、古いDLLを利用中のアプリケーションが依然実行中の可能性がありますので、Process Explorer [sysinternals.com]でそのようなアプリケーションを検索し、手動でアプリケーションの再起動を行う必要があるでしょう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
Windowsすべて? (スコア:0)
Re:Windowsすべて? (スコア:4, 参考になる)
これを使わない大多数のアプリは影響ありません。
Susie や Mozilla は、自前のjpeg展開エンジンをもっていますし
GDI+ を利用していませんので、影響を受けないと思います
GDI+ には JPEG や PNG のサポー
Re:Windowsすべて? (スコア:2, 参考になる)
そしたら、.NET配下のディレクトリにあるものは新しいんだけど、system32の下にやたら古い日付のが残ってる…
さらに、以前必要に迫られてインストールしたVisioViewer配下のディレクトリにも、さらにCommon Files\Microsoft Shared\Inkにも古いものが。
自社製品分くらい全部洗ってくれ~
#んで、それぞれを最新のに置き換えて問題ないのだろうか…
Re:Windowsすべて? (スコア:1, 興味深い)
%systemroot%\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.1360_x-ww_24a2ed47
等でしょうか?
私の環境では %systemroot% の中を検索してみただけで古いのが3つ見つかりました。
そのうち2つは %systemroot%\WinSxS\x86_Microsoft.Windows.GdiPlus・・・なのですが、
%systemroot%\system32\gdiplus.dll が 5.1.3097.0 ・・・
DLLの検索順とかで大丈夫なのか、かなりヤバイのかどちらなんでしょうか?
Re:Windowsすべて? (スコア:2, 参考になる)
早速 XP SP1(MS04-028適用済み)で試してみると心配していた通り、
Explorerがクラッシュしました。
%systemroot%\system32\gdiplus.dll が古いバージョンなのが原因だと思います。
MS04-028を当てた方で同じような方おられますか?
Re:Windowsすべて? (スコア:1, 興味深い)
今回の修正がサイド・バイ・サイドのディレクトリやDLLの作成と
それに関連するレジストリの修正のようですね。
サイド・バイ・サイドは良く知らないのですが、
この残っている古いDLLを使用してしまうアプリが無いのか気になります。
また、少なくとも、関連するDLLをロードしているアプリは再起動しないと
セキュリティ・ホールを抱えたままになるわけですが
そういったメッセージって出ませんでしたよね?
# まぁ、私の場合はここ1週間で3回ほど停電しているので
# 攻撃が流行る前にリブートしていたでしょうけど (苦笑)
Re:Windowsすべて? (スコア:1, 興味深い)
今回の更新では修正済みのgdiplus.dllへのリダイレクトを指示する新しい発行元構成ファイルもインストールされるため、通常「間違って」古いSide-by-Side DLLが使用されることはありません。詳しくは以下の資料をご覧ください。
共有アセンブリとアプリケーションへのサービスの提供 [microsoft.com]
「メッセージを出さなかった」のは"Microsoft GDI+ 検出ツール" (あるいはWindows Update) のことでしょうか? このツールはMicrosoftの製品についての検出ツールです。サードパーティー製のアプリケーションはサポートしていません。
また、Windowsのファイルシステムではロード中のDLLの上書きができないため、問題のDLLを使用中のアプリケーションが存在するとDLLを更新できません。
そのため Side-by-Side アセンブリのインストールでは旧バージョンのDLLを上書きするのではなく、バージョンごとに異なるフォルダにインストールを行います。これにより旧DLLを利用中のアプリケーションがあってもSide-by-Sideアセンブリのインストールは正常に終了します。
しかし、古いDLLを利用中のアプリケーションが依然実行中の可能性がありますので、Process Explorer [sysinternals.com]でそのようなアプリケーションを検索し、手動でアプリケーションの再起動を行う必要があるでしょう。
Re:Windowsすべて? (スコア:1, 興味深い)
Side-by-Sideのしくみについては全くといっていいほど知らないので、
少しずつ勉強したいと思います。
そして、新しいフォルダにインストールした後、
Side-by-Side関連のレジストリの修正を行うという理解でよろしいでしょうか?
やはりそうですよね。
3rd party のアプリまでとはいいませんが、このDLLをロードする自社製アプリについては
インストーラでチェックして警告を出して欲しいと思いました。
アップデートしたと安心していて、立ち上げたままのアプリが攻撃される可能性がありますよね。
ExplorerもこのDLLをロードしますし、ログオフせずにサスペンドやスリープにしている人も結構いそうです。