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 コメント:
コメントを投稿