ゲームでのチートの主流は表示されている数値などをメモリ上で検索、それを書き換えるもの。
対策としては画面に表示される数値についてはメモリを多重化しておくという方法がある。
つまりたとえば、realValという変数に実際の値を入れ、secValという値にそれを定数倍した数を入れる。
realVal = t; secVal = t * seed;
すると常に
secVal == realVal * seed
が成り立つはず。
もしrealValが書き換えられていると、そうはならないため、チートが検出できる。
if (secVal != realVal * seed) {
cheatDetect();
}まとめたクラスは以下の添付ファイルで。
ただし、この方法もswf自体がデコンパイルされて書き換えられると有効では無いので、swfの暗号化が必要。
| Page Info | |
|---|---|
| Page Name : | ActionScriptでチート検出 |
| Page aliases : | None |
| Page owner : | njf |
| Can Read | |
| Groups : | All visitors |
| Users : | All visitors |
| Can Edit | |
| Groups : | All visitors |
| Users : | All visitors |
Counter: 2553,
today: 1,
yesterday: 0
Princeps date: 2015-05-22 (Fri) 04:52:21
Last-modified: 2015-05-28 (Thu) 15:40:28 (JST) (3825d) by njf

