0

パラメータの 1 つは、WriteProcessMemory()明らかにベース アドレスへのポインタを要求します。しかし、それがマルチレベル ポインターの場合はどうでしょうか。たとえば、最終的に静的アドレスを取得するためにポインターを 3 回検索する必要があり、最初のオフセットが 0、2 番目が 57、3 番目が 268 だったとします。にオフセットを含めますWriteProcessMemory()3 つのオフセットすべてを含める必要がありますか、それとも静的アドレスに導いた最後のオフセットのみを含める必要がありますか? 明確にするために、私は基本的に PC の一人称シューティング ゲームでメモリを操作する練習をしています。私の目標は、ハッキングなどを行うことではありません。メモリをプロセスに書き込む練習をしたかっただけです。(たとえば、「ヘルス」アドレスまたは「弾薬」アドレスに新しい値を書き込もうとします。) そして、主に、マルチレベル ポインターのオフセットを説明する方法を知りたいだけです。

4

3 に答える 3

0

WriteProcessMemory は絶対データをメモリに配置します。複数レベルの構造をメモリに書き込む場合、たとえば要素にポインターを含める場合は、リモートと書き込むデータの量に基づいてポインター値を書き込むlpBaseAddress必要があり、そのデータを書き込む必要があります。メモリに配置されます。

書き込み元の構造体にポインターがある場合、書き込み先のデータの一部になるようにそれらを書き換えない限り、それらは機能しません。

于 2013-02-21T01:53:21.537 に答える
0

住所は住所です。マルチレベルポインター (ポインターへのポインターへのポインター) で到達したかどうかは問題ではありません。

ベースアドレスは、書き込み先のアドレスです。マルチレベルポインターが指しているアドレスは、そのパラメーターに入ります。

于 2013-02-21T01:50:15.967 に答える