0

私は Crysis Wars と呼ばれる PC ゲームのプログラムを作成していますが、最近、プレイヤーから、かなり皮肉なスクリプト エラーを含む問題を修正するために、新しいゲームの更新 (コミュニティ パッチ) を求める声が絶えず寄せられています。

Infinium、Gamg、Annihilator、Longpoke として知られるいくつかのゲーム ハックがあり、DLL インジェクション メソッドに依存して、内部のアンチチート システムに気づかれることなくゲーム内にハックとチートを配置します。これらのハッキングは非常に単純で、16 進値の変更を通じてメイン ゲーム DLL のコードを悪用します。一部 (Gamg など) はゲーム エンジン独自の SDK で作成されます (このハックの作成者を知っています)。

他の人たちと同じように、私は CryEngine 2 (ゲーム エンジン) SDK (メイン ゲーム dll のソース コードを含む) にアクセスでき、すべてのゲーム機能 (クライアントとサーバーの両方) の名前と場所を変更して、既存のハックはもう機能しません。

これは、メイン ゲームの dll の 16 進値を変更するハッキングを阻止するために機能しますか? SDKで作ったハックが機能しなくなることは確認していますが、手間がかかるので他の人に確認したいです。

基本的に、私が求めていること:

ハッカーはソース コードを変更することでゲーム内の DLL を悪用しています。ソース コード内のすべての関数を変更し、(新しいソース コードをリリースせずに) ゲームの (コミュニティ) アップデートを発行した場合、ハッカーは問題なく同じハック?

これが紛らわしいと思われる場合はお詫び申し上げます。より明確にする必要がある場合は、おっしゃってください。

4

1 に答える 1

3

合法、非合法のモッドを含め、すべてを破壊します。違法な改造はおそらくすぐに修正されるでしょう。提案された変更をリバース エンジニアリングするのは非常に簡単です。

より良い方法は、データ実行防止を有効にして、DEP をバイパスするために必要な VirtualProtect 機能をフックすることです。その後、後でフックをインストールしようとする試みをキャッチできます。もちろん、VirtualProtect の既存のフックがないこと、または既知の DLL ハックが既に存在しないことを確認してください。

于 2014-02-14T13:07:05.850 に答える