1

ハンドルを取得してその値を出力することにより、C++ でプロセスの開始アドレスを取得しようとしています。Cheat Engine を介して Spider Solitaire の開始アドレスを取得しようとしたところ、「300905A4D」が表示されました (現在はそうです)。私は試します

HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid) 

C++ プログラムを再起動するたびに、別の番号/アドレスが表示されます。私はスパイダー ソリティアを常に実行し続け、チート エンジンは同じ開始アドレスを与え続けますが、印刷すると

cout << &pHandle; 

私の C++ プログラムは、毎回異なる番号を返します。ここで何が間違っていますか?また、私の C++ コードは問題なく動作します。メモリに書き込むことはできますが、なぜ Cheat Engine が提供するのと同じアドレスを取得しないのか、毎回異なるアドレスを取得するのか疑問に思っています。

4

1 に答える 1

3

プロセス ハンドル変数のアドレスを出力しているため、プログラムが実行されるたびにハットが異なる可能性があります。OS は、アプリケーションを起動するたびに、プロセスとその変数をメモリ内のどこに配置するかを決定します。

于 2012-07-19T19:50:14.790 に答える