アカウント名:
パスワード:
手持ちのアプリケーションをDependency Walkerで確認してみましたが、Visual Studio 6.0及びVisual Studio 2005で作成したスタティックリンク系MFCアプリケーションも、dwmapi.dllを間接的にロードしているように見えます。(実際にロードされるかは未確認)
そもそも、VS2010のMFCもdwmapi.dllを直接ロードしているわけではなく、ダイナミックリンクしているshell32.dllから間接的に呼ばれているわけで……。これ、下手をするとshell32.dllを呼び出すアプリは全滅じゃないですかね?ちなみに、shell32.dllはその名の通りシェル関連のDLLで、SHGetMallocのようなSH接頭
system32あたりに空ファイル作ってdwmapi.dllという名前にしておけばXPでも無問題という風に読めたんだけど、違うかな?
>dwmapi.dllが存在しないため、LoadLibraryは標準のDLL検索パスを捜査し続け最終的にはカレントディレクトリここらへんがちょっと違う。LoadLibraryのディレクトリ探索順はカレントの方が先なんだけど、レジストリに登録済みのDLLはそっちが先に読まれる。だからこそアーカイバDLLとかが問題になってる。Webなんとかの問題みたいに考えられてるけど、これも違って、普通にアーカイブ内に関連付けで脆弱appが起動するファイルとdllを置いておけば、exe等のバイナリじゃない単なるファイルを起動しただけで見知らぬバイナリが実効されることになる。
#レジストリに登録って馬から落馬だよね。
DLL Hijacking全般の話と、この件のみの話がごっちゃになってる。
この件は古いOSの問題なんだから古いOSの話しないと意味ないでしょうに。>dwmapi.dllの存在するプラットフォーム(Vista以降)でそんな危険な探索順のものは存在しません存在するなら問題ないんだって。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
VS 2010+MFCだけの問題? (スコア:1, 興味深い)
手持ちのアプリケーションをDependency Walkerで確認してみましたが、Visual Studio 6.0及びVisual Studio 2005で作成したスタティックリンク系MFCアプリケーションも、dwmapi.dllを間接的にロードしているように見えます。
(実際にロードされるかは未確認)
そもそも、VS2010のMFCもdwmapi.dllを直接ロードしているわけではなく、ダイナミックリンクしているshell32.dllから間接的に呼ばれているわけで……。
これ、下手をするとshell32.dllを呼び出すアプリは全滅じゃないですかね?
ちなみに、shell32.dllはその名の通りシェル関連のDLLで、SHGetMallocのようなSH接頭
Re: (スコア:5, 参考になる)
一方で、MFCは、どのプラットフォーム上においてもLoadLibrary("dwmapi.dll")を実行してしまいます。これは、Vista以降では、正しいdwmapi.dllをロードしますが、XP上では、dwmapi.dllが存在しないため、LoadLibraryは標準のDLL検索パスを捜査し続け、最終的にはカレントディレクトリも捜査してしまうため、カレントディレクト
あてずっぽうだけど (スコア:0)
system32あたりに空ファイル作って
dwmapi.dllという名前にしておけばXPでも無問題
という風に読めたんだけど、違うかな?
Re:あてずっぽうだけど (スコア:1)
>dwmapi.dllが存在しないため、LoadLibraryは標準のDLL検索パスを捜査し続け最終的にはカレントディレクトリ
ここらへんがちょっと違う。
LoadLibraryのディレクトリ探索順はカレントの方が先なんだけど、レジストリに登録済みのDLLはそっちが先に読まれる。
だからこそアーカイバDLLとかが問題になってる。
Webなんとかの問題みたいに考えられてるけど、これも違って、普通にアーカイブ内に関連付けで脆弱appが起動するファイルとdllを置いておけば、
exe等のバイナリじゃない単なるファイルを起動しただけで見知らぬバイナリが実効されることになる。
#レジストリに登録って馬から落馬だよね。
Re:あてずっぽうだけど (スコア:1)
DLL Hijacking全般の話と、この件のみの話がごっちゃになってる。
この件は古いOSの問題なんだから古いOSの話しないと意味ないでしょうに。
>dwmapi.dllの存在するプラットフォーム(Vista以降)でそんな危険な探索順のものは存在しません
存在するなら問題ないんだって。