Apr 042011
レジストリにImage File Execution Optionsなんてものがあるのですね。
実際の手順
- レジストリHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options以下に置き換えたいプログラムの実行ファイル名でキーを作成する(notepadの場合はnotepad.exe)
- Debuggerの名前でREG_SZを作成し、文字列に置き換えたいプログラムを指定する
64ビットの場合のレジストリキーはHKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Optionsになるとのこと。
Notepad2で置き換え後にメモ帳を起動すると、Commnad Lineは以下のようになっていました(Process Explorerで確認)。
"C:\Program Files\Notepad2\Notepad2.exe" /z "C:\Windows\System32\notepad.exe"
どのテキストエディタにでも置き換えられるかというとそんなことはなく、置き換え前の実行イメージファイル名が引数として渡されることになるので(デバッグ用ですから)、それを無視できる動作が必要になります。Notepad2の場合”/z”オプションで後ろの引数を無視するようになっています。
Notepad2のページによると、SysinternalsのProcess Explorerがタスクマネージャを置き換える際も同様の手法を用いているとのことです。
試してみたところ、確かにHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution\taskmgr.exeのDebuggerにProcess Explorerが設定されました。
物理的に実行イメージを置き換えるんだろうかと思ってたのですが、そんなことはなかったのですね。
Sorry, the comment form is closed at this time.