Tibiaは、C ++クライアント(画像)を介して動作するオンラインマルチプレイヤーゲームです。たとえば、charの外観を変更したり、HPが特定のポイントに到達したときに回復アイテムを使用したり、美的感覚なしでマップを描写したりできるチートツールがいくつかあります(画像)。
これらのソフトウェアは、Tibiaが使用する内部メモリにどのようにアクセスでき、特定の情報がどこに保存されているかをどのように把握できますか?
Tibiaは、C ++クライアント(画像)を介して動作するオンラインマルチプレイヤーゲームです。たとえば、charの外観を変更したり、HPが特定のポイントに到達したときに回復アイテムを使用したり、美的感覚なしでマップを描写したりできるチートツールがいくつかあります(画像)。
これらのソフトウェアは、Tibiaが使用する内部メモリにどのようにアクセスでき、特定の情報がどこに保存されているかをどのように把握できますか?
ご存知かもしれませんが、アプリケーションのすべての命令/データは、通常はコンパイラによって設定されるメモリ内の特定のオフセットに保存されます。デバッガー/逆アセンブラー(例:ollydbg)またはメモリ「サーチャー」(例:CheatEngine)を使用して、これらを表示できます。簡単なプロセスの1つは、特定の値(たとえば、健康状態)をメモリで検索し、ゲームダイナミクスで変更して、問題の値のメモリアドレスが得られるまで検索を繰り返すことです。これは通常、静的です。つまり、変更されません。実行可能ファイルが更新されるまで。(実際には、ASLRのような手法はランダム化に使用されますが、回避することができます)
取得したアドレスを使用して、Windows APIを使用してマウスクリック/キーストロークを実行するか、ゲーム内関数を呼び出すことで、アドレスと引数をデバッグによって見つけることができるハンドラーを作成できます。(例:ヘルスが50%未満の場合、この関数を呼び出します)
もう1つの方法は、すべてのトラフィックがルーティングされるプロキシを使用し、発信パケットを挿入してアクションを実行したり、着信パケットを解析して条件を推測したりできるようにすることです。
明らかに、サンプルコードを提供することはできませんが、リバースエンジニアリングの基本とパケットスニッフィングについて読み、クラックを解決し、CheatEngineフォーラムのようなシングルプレイヤーゲームで不正行為を行うためのチュートリアルに従うことから始めることができます。
プログラマー以外の人に説明されているように、ボッティングと対策についてこのチャットログを確認することもできます:http://pastebin.com/6WWif7gK ( 開始:20)