Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

DllLoadSearchOrder

Win32のDLLロード順序

DLLのロードについては、

  • 複数バージョン混在による問題(いわゆるDLLヘル)
  • トロイの木馬による挿げ替え(キーロガーなど)への対策
  • システム配備者による意図的な挿げ替え(アプリケーションの異常判定)
  • システム的な整合性の保持(共有メモリーの利用)

などのさまざまな観点から、Windowsのサービスパックのレベルで変更が行われることがある。

また、アプリケーション側でも、動的ロード(LoadLibrary/GetProcAddress)、静的ロード(リンク時にimportライブラリを指定)、さらに静的ロードでの遅延ロード、マニフェストによる指定などの種々の方法によって制御できたりできなかったりする。

ここでは、DLLのロードに関する資料へのポインタを示す。

MSDN

KnownDLLs?

INFO: Windows NT/2000/XP Uses KnownDLLs Registry Entry to Find DLLs

KnownDLLsキーは、共用メモリーなどを利用しているため、全プロセスで同一インスタンスの利用が必要なDLLを特定するために設定されている。

Windows Vistaでは、ブート時にKnownDLLsに登録されたDLLが参照するDLLもKnownDLLsとして扱うように変更されている。

SafeDllSearchMode

Dynamic-Link Library Search Order

SafeDllSearchModeキーによる制御は、カレントディレクトリの参照優先順位を下げることで、トロイの木馬などによる挿げ替えを防止することが目的と考えられる。

NyaRuRuさんのページ

DLLの闇

DLLのロード問題に関するNyaRuRuさんの言及へのポインタ。

DirectX Graphicsの隠し設定を利用した開発テクニック

DirectX APIはDLLとして提供されているため、DLL操作に関する種々のテクニックに言及されている。

DLL検索順序(1)

SafeDllSearchModeやSetDllDirectory APIについて。

Side-by-Side

Side-by-Sideについて調べられたこと。

GDI+セキュリティFIX……

GDI+セキュリティFIXによるDLL置き換えによって発生した問題に関する調査。

APIフック

APIフックに関する話題。

DLLの闇 (2)

Dependency Walker の使い方など。

DependencyWalker

Dependency Walker

DLLやEXEファイルが依存するDLLを調査するための最も重要なツール。

Visual Studioにも付属しているが、最新版は作者のSteve P. Millerのページに置かれている。

APIHijack

APIHijack

DLLにフックを埋め込む

Win32 API hooking: Another reason why it might not work

上記に関連して。直接IATを参照せずにローダーファンクション(と仮称する)経由で呼び出されることがあるということを示す。

Last modified:2006/07/16 21:21:06
Keyword(s):
References: