標準ツールが役に立たない場合のゲームでの不正行為との戦い

ネットワークゲームでの不正行為が標準的な保護を超えて、一見すると克服できない問題になる状況があります。

しかし、そのような状況でも、解決策を見つけることができます。

この記事では、あまり人気のないARMA 2ゲームと、あまり一般的ではない不正行為者の対処方法について説明します。

主題(ゲーム管理)はハブラーにとってかなり珍しいものですが、ITにも関連しており、注目に値すると思います。



まえがき


長い間、Habrをどれだけ読んだか、私は普通のネットワークゲームの管理に関する記事を一度も読んだことがありませんが、そのような管理者もいます。 彼らは、他の管理者と同様に、ハードウェアを収集し、LinuxまたはWindowsをインストールし、Apache、nginxをインストールし、Webサービスを実行し、ハブを読み取ります。 。



この記事では、ゲームサーバーの構成については説明しませんが、上で書いたように、標準の保護がこのタスクに対応していない場合、いかさま(たとえば、ゲームARMA 2)に対処する方法に注意を払いたいと思います。



ゲームARMA 2の説明と機能


このゲームには特別な観客、難しいゲームのファンを引き付ける特別な雰囲気があります。 人気のあるヒットと比較して、かなりの数の人々がそれをプレイします。 そして、ここでのポイントは、プレイを妨げるいくつかのバグだけでなく、かなり複雑なゲームプレイでもあります。 簡単ではありません。このゲームは軍事シミュレーターとして位置付けられており、単純な3Dアクションではありません。



ユニークなゲームプレイに加えて、ARMA 2の最大の特徴は、非常に柔軟なスクリプトシステムを備えているため、オリジナルのゲームとはまったく異なるものにすることができることです。 たとえば、RPG要素を使用してネットワークモードを作成できます。 基本的に、それはすべてこのゲームのミッションを遂行する人のスキルと想像力に依存します。

このゲームには、装備、兵士のモデル、武器、音などのアドオンの巨大なデータベースもあります。



しかし、その最大の機能は最大の脆弱性の問題です。 ARMA 2の詐欺師は、マップ上のオブジェクトの作成、不滅、無限の弾薬から、サーバーを制御するコマンドの実行まで、何でもできます。



そのような状況では、公式の防衛でさえこの戦いを失い始めます。 そして、ゲームを絶えず監視する以外に、不正行為者を捕らえるのに役立つと思われます。

しかし、ゲームの機能を知っていれば、まだいくつかの対策を講じることができます!



侵入者との戦い


ARMA 2の不正行為者と戦うために、公式のBattlEyeアンチチートが使用されます。

また、ゲームには多くのアドオンがあり、ネットワークゲームで有利になるものも含まれているため、承認されたアドオン「verifySignatures = 1;」のみでサーバー上でプレーヤーを起動する機能を実装しています。署名。

しかし、これはすべて助けにはなりません。 詐欺師が望む場合、彼は一意の署名の検証をバイパスし、チートアドオンでサーバーに到達する手段を見つけることができます。

幸いなことに、すべての不正行為者が十分に賢いわけではなく、ログに次のエントリが表示される場合があります。

10:49:46 Player Dimt:ファイル展開\アドオン\ darky.pboの署名が間違っています

このような場合、管理者自身がチートの知識を掘り下げなければならず、アドオンのdarky.pboの名前がチートへの所属を示していることは明らかです。



個人的に、ログ分析を容易にする簡単なスクリプトを作成しました。

#!/bin/sh

DETECTED="/usr/games/a2_bans/cheater.log"

DETECTEDTK="/usr/games/a2_bans/teamkill.log"

WRONGSIG="/usr/games/a2_bans/wrongsig.log"



echo " ( 30 ): `date "+%d.%m.%Y %H:%M:%S"` \n" > $DETECTED

grep GameHack /usr/games/arma2*/arma2_server_console.log >> $DETECTED



echo " ( 30 ): `date "+%d.%m.%Y %H:%M:%S"` \n" > $WRONGSIG

grep 'Wrong signature for file' /usr/games/arma2*/arma2_server_console.log >> $WRONGSIG



echo " ( 30 ): `date "+%d.%m.%Y %H:%M:%S"` \n" > $DETECTEDTK

grep teamkill /usr/games/arma2*/log.23* >> $DETECTEDTK







したがって、私はそれを30分ごとに実行されるようにクローンで指定しました。

それは私と私たちのサーバーの他の管理者を本当に助けます。

しかし、詐欺師との効果的な戦いという点では、とにかくほとんど役に立たない。



そして、ここで最も興味深い基本的な方法が登場します-トラフィック分析です!



不正行為者との戦いにおけるWireshark


ゲームサーバーの管理は、常に特定のサーバーアプリケーションを単純に含めることとはほど遠いものです。 また、ゲームに直接関係ないことを知るのにも役立ちます。

この状況でそうなりました。 Wiresharkトラフィックアナライザーが助けになりました。 このプログラムの使用方法の詳細については説明しません。適切なドキュメントが添付されています。

ARMA 2サーバーでのトラフィック収集は非常に簡単です。

dumpcap -i 1 -f "udp port 2302 and dst xxxx" -w /var/log/dumpcap/arma2co_1/a2co1.pcap -b duration:1800 filesize:200000







収集された情報により、テクニックを作成したり、他のプレイヤーを殺したりする不正行為チームの使用を確認できます。

不正アプリケーションで使用できるコードを想定するか、自分の作業を分析するために自分でいくつかの不正をダウンロードする必要があります。

その結果、どのキーワードを探すべきかがすでにわかっている場合、次の図を見つけることができます。

0040 00 00 0a 92 8f c5 00 68 45 78 65 63 43 6f 64 65 .......hExecCode

0050 00 3c 06 00 00 00 53 54 52 49 4e 47 22 4c 61 6e .<....STRING"Lan

0060 64 52 6f 76 65 72 5f 43 5a 5f 45 50 31 22 20 63 dRover_CZ_EP1" c

0070 72 65 61 74 65 56 65 68 69 63 6c 65 20 28 70 6f reateVehicle (po

0080 73 69 74 69 6f 6e 20 70 6c 61 79 65 72 29 sition player)







プレーヤーからわかるように、 hExecCodeコマンドは、( createVehicleLandRover車を作成するコードとともにサーバーに送信されました。

もちろん、この状況では、追加の手段(チート)がなければ、そのようなコードは使用できません。

その後、侵入者をブロックするために必要なすべてのデータを計算することは難しくありません。



その結果、インスタントアクションの自動保護ではありませんが、不正コードの認識に関しては非常に効果的です。




All Articles