Windows XP SP2以降のOptInポリシーでDEPが有効になるプロセス*1について今まではProcess Explorerを使って調べていたが、この方法では調べたい実行ファイルを実行しないとDEPが有効かどうかを調べることができなかった。
しかしながら下記のコンテンツに記載されているMicrosoft Application Compatibility Toolkitを使えば、調べたい実行ファイルを実行しなくてもDEPが有効かどうか調べることができる。
Windows XP SP2以降のOptInポリシーでDEPが有効になるプロセスを調べる手順は下記の通り。
- Windows Update(Microsoft Update)などを使って.NET Framework 2.0以降をインストール
- Microsoft Application Compatibility Toolkit 5.5をダウンロードしてインストール*2
- [スタート] - [すべてのプログラム] - [Microsoft Application Compatibility Toolkit 5.5] - [Compatibility Administrator]をクリックして実行
- [System Database] - [Applications] - [Windows Components]をクリック
- [プロセス名] - [Compatibility Fixes] - [AddProcessParametersFlags]または[AddProcessParametersFlagsEx]になっていればOptInポリシーでDEPが有効
Windows Componentsに登録されていないプロセスや、"AddProcessParametersFlags"または"AddProcessParametersFlagsEx"が設定されていないプロセスは、OptInポリシーではDEPが有効にならない。
これらの情報を格納しているMicrosoft Windows Application Compatibility Fix Databaseは下記のディレクトリに保存されている。
%windir%\AppPatch\sysmain.sdb
ちなみにMicrosoft Application Compatibility Toolkitの情報を見ると"Matching Files"と書かれているので、もしやと思い実行ファイル名notepad.exeをnotepada.exeに変更するとDEPが無効になる。逆にDEPが無効なwmplayer.exeの実行ファイル名をnotepad.exeに変更するとDEPが有効になる。どうやら"Matching Files"の値(プロセス名と会社名の両方)にプロセスがマッチすればDEPが有効になるようだ。なんか危なっかしいなぁ〜