2011/08/12

CreateRemoteThread で ERROR_ACCESS_DENIED

 
Windows7 SP1 64bit 環境で cmd.exe に対して CreateRemoteThread
実行すると ERROR_ACCESS_DENIED になる。
 
OpenProcess() の段階で PROCESS_CREATE_THREAD が成功しており、
かつ特権をさらに与えても失敗。
 
セキュリティなもの?
 
CreateRemoteThread() では 実行に LoadLibrary() で引数に 64bit カーネル
dll を渡してやっているだけなのに。
 
フック関連の書籍は Advanced Windows 下巻が参考になります。

Advanced Windows 第5版 下 (マイクロソフト公式解説書)
 
CreateRemoteThread() に関しては 298ページから記載。概念的なものも含め、
非常に細かく解説してるのは、この本以外では見たことない。
 
うーん、Windows7 でセキュリティが厳しくなったのでしょうか。
それとも 64bit で何か考慮するべき事を忘れてるのか…
 
とおもって色々試してみた所…
 
dll が 64bit でも、CreateRemoteProcess を行うプロセスが 32bit では
失敗してしまう事がわかりました。

0 件のコメント:

コメントを投稿