アカウント名:
パスワード:
Windowsには動的ライブラリ(DLL)を相対指定で読み込もうとすると最初にカレントディレクトリから探すという仕様
2000年の時点でこんな記事が…「WindowsのDLL呼び出し順序に由来するセキュリティ・ホール - DLLを呼び出す「順序」が元凶 [nikkeibp.co.jp]」
それにしても酷い仕様だ。
15年前のソフトも動かせるってのはそういう事です。まぁ、その記事はかなり古い(10年前ですよ!)ので今セキュリティ的にサポートされてるXP SP3以降であれば、問題はかなり低減されています。
この問題が発生するのは、自分がそのDLLを使う事が解っているのに、DLLを適切に入れてないケースです。ぶっちゃけ、自分が何を使ってるのか解ってない、構成管理が出来ていない、適切にセットアップ出来てないケースです。最近の大規模化してるアプリだとまぁ、ありがちではありますが・・・例えばVBアプリケーションやDirectXアプリケーションなんかはランタイムDLLの一部が無くてもと
セルフ追記。
日本語にはまだ対応してない、多言語対応アプリも要注意かもしれません。リソースをDLLで持っていて読み取り方法が不味く、システム言語ファイルをとりあえず最初にロードするタイプだと合わせ技で食らうかもしれません。アプリ名_langid.dll例えば"lang0409.dll"とか、"AppName.1033"(拡張子は必ずしもDLLとは限らない)とか、AppLang.enu(GetLocaleInfo [microsoft.com]+LOCALE_SABBREVLANGNAME [microsoft.com]とかで文字な場合もある)とかみたいな感じのファイルがアプリのフォルダにがあったら要注意だと思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
2000年からわかっていた問題 (スコア:2, 興味深い)
Windowsには動的ライブラリ(DLL)を相対指定で読み込もうとすると最初にカレントディレクトリから探すという仕様
2000年の時点でこんな記事が…「WindowsのDLL呼び出し順序に由来するセキュリティ・ホール - DLLを呼び出す「順序」が元凶 [nikkeibp.co.jp]」
それにしても酷い仕様だ。
Re: (スコア:5, 参考になる)
15年前のソフトも動かせるってのはそういう事です。
まぁ、その記事はかなり古い(10年前ですよ!)ので今セキュリティ的にサポートされてるXP SP3以降であれば、問題はかなり低減されています。
この問題が発生するのは、自分がそのDLLを使う事が解っているのに、DLLを適切に入れてないケースです。
ぶっちゃけ、自分が何を使ってるのか解ってない、構成管理が出来ていない、適切にセットアップ出来てないケースです。
最近の大規模化してるアプリだとまぁ、ありがちではありますが・・・
例えばVBアプリケーションやDirectXアプリケーションなんかはランタイムDLLの一部が無くてもと
Re:2000年からわかっていた問題 (スコア:1)
セルフ追記。
日本語にはまだ対応してない、多言語対応アプリも要注意かもしれません。
リソースをDLLで持っていて読み取り方法が不味く、システム言語ファイルをとりあえず最初にロードするタイプだと合わせ技で食らうかもしれません。
アプリ名_langid.dll例えば"lang0409.dll"とか、
"AppName.1033"(拡張子は必ずしもDLLとは限らない)とか、
AppLang.enu(GetLocaleInfo [microsoft.com]+LOCALE_SABBREVLANGNAME [microsoft.com]とかで文字な場合もある)とか
みたいな感じのファイルがアプリのフォルダにがあったら要注意だと思います。