0

dllインジェクションの基本を学ぼうとしているので、オンラインで見つけたコードに基づいて、非常に単純なhello-worldタイプのDLLとインジェクターを作成しました。箱から出してすぐに使えるものを見つけることができなかったので、いくつかの調整を行う必要がありました。

インジェクションコードDLLコード

私はこれらを64ビットウィンドウで実行しています。Visual Studio 2010でコンパイルしています。インジェクターはwin32コンソールアプリであり、dllもwin32です。コードを既存のメモ帳プロセス(これも32ビット)に挿入しようとしています。これらはすべてWindows7x64で実行されています。

インジェクターを実行すると、毎回失敗しCreateRemoteThreadGetLastError5(つまり)が返されERROR_ACCESS_DENIEDます。dllパスが正しいことを確認し(偽のパスに変更しても同じ動作が得られます)、CheatEngineを使用してパスがメモ帳のメモリの正しいアドレスに書き込まれていることを確認しまし。問題をさらにデバッグする方法がわからないため、これに苦労しています。

CreateRemoteThreadが失敗する原因は何ですか?

4

2 に答える 2

3

問題は、notepad.exeが64ビットウィンドウの64ビットプロセスであり、32ビットプロセスを挿入しようとしていたことです。

于 2012-12-23T18:25:13.940 に答える
0

私も同じ問題を思いつきます。私の状況はこれです:

  1. 私のシステムは64ビットで、メモ帳も64ビットです。

  2. しかし、インジェクターは32ビットプロセスです。

私の解決策は、システムディレクトリで64ビットのメモ帳を32ビットのメモ帳に置き換えることです。

于 2015-12-28T08:39:57.867 に答える