ゲームでのチートの主流は表示されている数値などをメモリ上で検索、それを書き換えるもの。
対策としては画面に表示される数値についてはメモリを多重化しておくという方法がある。
つまりたとえば、realValという変数に実際の値を入れ、secValという値にそれを定数倍した数を入れる。
realVal = t; secVal = t * seed;
すると常に
secVal == realVal * seed
が成り立つはず。
もしrealValが書き換えられていると、そうはならないため、チートが検出できる。
if (secVal != realVal * seed) { cheatDetect(); }
まとめたクラスは以下の添付ファイルで。
ただし、この方法もswf自体がデコンパイルされて書き換えられると有効では無いので、swfの暗号化が必要。
ぺージ情報 | |
---|---|
ぺージ名 : | ActionScriptでチート検出 |
ページ別名 : | 未設定 |
ページ作成 : | njf |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
Counter: 2130,
today: 1,
yesterday: 1
初版日時: 2015-05-22 (金) 04:52:21
最終更新: 2015-05-28 (木) 15:40:28 (JST) (3217d) by njf