読者です 読者をやめる 読者になる 読者になる

run as...

最近の Windows のシェルは「別のユーザーとして実行」というプロセスの起動方法をサポートしています.アイコンをシフトキーを押しながら右クリックですね.
このとき表示されるダイアログに,「現在のユーザーとして実行する」に加え「許可されていないプログラムの動作からコンピュータとデータを保護する」というものが存在します.例えばこのチェックをオンにして iehook.exe を起動すると,例え管理者として実行してもフックは成功しませんし,逆にオフにすると成功します.
このチェックボックスの動作については以下の記事に詳しく紹介されていました.確かに cme.exe で試してみると,"whoami /priv" の結果が異なります.
http://blogs.bartdesmet.net/bart/archive/2004/12/25/511.aspx
このあたりを突き詰めれば,Win32 API の CreateProcessAsUser に行き着きます.余談ですがメッセージフック絡みでは Window Station や Desktop も抑えておきたいポイントですね.DESKTOP_HOOKCONTROL とか.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/desktop_security_and_access_rights.asp
http://support.microsoft.com/?scid=kb;en-us;165194