ゲームを作っていて、ハッキングがすごく気になるので、ゲーム内でアンチチートを書いているのですが、今のハックがどのように書かれているのか調べてみたら、パターンがいくつか見つかりました、まずは、ほとんどすべてのハックは、スレッド (通常は CreateThread() を使用) を使用してチェック ループを作成します (ハックのオン/オフをチェックします)。スレッドがゲームのものではないかどうかをチェックする良い方法はありますか?コードの外側 (DLL の内側) からのスレッドも使用する
1 に答える
6
cdhowie が指摘するように、賢い誰かがあなたのアンチチート コードに、あなたが望むことをしないコードをぶちまけるのを防ぐ方法は何もないので、"アンチチート" の別の方法を見つける方がほぼ確実に優れています。
はるかにうまく機能するいくつかのテクニックがあります。
サーバーにすべての「重要な」ことをさせてください。たとえば、獲得したスコアや残りのライフ数を把握するなどです。プレイヤーがズームビーになった場合 (死んだ後に移動しようとする場合)、何かが間違っています。
私が合理的にうまく機能していると思うもう 1 つの方法は、基本的に、プレイヤーが現在の場所に到達した方法の「ログ」を記録することです。使用したライフの数、倒した敵の数、敵の種類、各敵のスコア、使用した武器、発射されたショット、それをすべて行うのにかかった時間、そしてそれが「合理的」であることをサーバーに確認させます。つまり、誰かが持っているライフの数を増やしたり、武器を変更して100倍のダメージを与えたり、敵を遅くしたりした場合またはプレイヤーの時間を短縮すると、「ログ」に表示され、ログは「偽物」として破棄できます。
于 2013-09-05T22:10:15.493 に答える