0

ITの世界でよく知られている例をここで見てみましょう。

ソリティアなどのゲームがあり、誰かがそのトレーナーを作成してリリースし、あなたの動きが常に「0」になるようにします。

どのアドレスと「ハッキング」が変化する値をプログラムで決定するにはどうすればよいですか?

これが可能であれば、どのような方法が最善でしょうか?

  • ゲーム内から[自分のdllを挿入/ロードしますか?]
  • ハックとターゲットプロセス間のトラフィックを自分のプロセスで傍受することによって?

私は2つの理由でこの質問をします:

4

1 に答える 1

1

できません。いくつかの失敗した試みは、2つのアドレスを設定してから、それらを比較している可能性があります(ただし、もう一方のアドレスは見つかります)。または、単に比較呼び出しを削除することもできます。

それらは、常に誤った結果を返すように「プログラムで決定」するために使用する保護機能を変更する可能性があります。彼らはあなたの実行可能ファイルに何でもすることができるので、方法はありません。

プロセスを開いてメモリを変更するカーネル関数をフックしない限り。しかし、それも壊れやすいので、私が間違っていなければ、「保護カーネルドライバー」を今すぐデジタル署名する必要があります。

実行中および新しく生成されたすべてのプロセスにDLLをロードする別の方法があり(プログラムがウイルスであることをアンチウイルスに警告する可能性があります)、そのDLLを使用してOpenProcessをフックします(それに代わる別の方法がある場合は、それも)各プロセスで機能し、プログラムをターゲットにしているかどうかを確認し、ターゲットになっている場合は防止します。関数フックについて検索します。「MSDetour」というものがあったと思います。

それでも、ゲームは安全に近いものではありません。

要約すると、ゲームをローカルで保護する方法はありません。スコアなどを保存する場合は、サーバープログラムを作成し、クライアントがサーバーへのすべての移動を報告する必要があります。

それでも、サーバーに自動的に応答するボットを作成できます。次に、あなたができる最善のことは、それが遊んでいるのが人間であることをどうにかして確認することです。(おそらくキャプチャまたは解決速度を人間の平均と比較しますか?)

于 2013-02-26T21:20:02.377 に答える