dllインジェクションの基本を学ぼうとしているので、オンラインで見つけたコードに基づいて、非常に単純なhello-worldタイプのDLLとインジェクターを作成しました。箱から出してすぐに使えるものを見つけることができなかったので、いくつかの調整を行う必要がありました。
私はこれらを64ビットウィンドウで実行しています。Visual Studio 2010でコンパイルしています。インジェクターはwin32コンソールアプリであり、dllもwin32です。コードを既存のメモ帳プロセス(これも32ビット)に挿入しようとしています。これらはすべてWindows7x64で実行されています。
インジェクターを実行すると、毎回失敗しCreateRemoteThread
、GetLastError
5(つまり)が返されERROR_ACCESS_DENIED
ます。dllパスが正しいことを確認し(偽のパスに変更しても同じ動作が得られます)、CheatEngineを使用してパスがメモ帳のメモリの正しいアドレスに書き込まれていることを確認しました。問題をさらにデバッグする方法がわからないため、これに苦労しています。
CreateRemoteThreadが失敗する原因は何ですか?