1: 2015-05-22 (金) 04:52:21 njf[5] [6] [7] | 現: 2015-05-28 (木) 23:40:28 njf[5] [8] [9] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ゲームでのチートの主流は表示されている数値などをメモリ上で検索、それを書き換えるものです。 | + | ゲームでのチートの主流は表示されている数値などをメモリ上で検索、それを書き換えるもの。 |
- | 対策としては画面に表示される数値についてはメモリを多重化しておくという方法があります。 | + | 対策としては画面に表示される数値についてはメモリを多重化しておくという方法がある。 |
- | つまりたとえば、realValという変数に実際の値を入れ、secValという値にそれを定数倍した数を入れます。 | + | つまりたとえば、realValという変数に実際の値を入れ、secValという値にそれを定数倍した数を入れる。 |
- | realVal = t; | + | realVal = t; |
- | + | secVal = t * seed; | |
- | secVal = t * seed; | + | |
すると常に | すると常に | ||
- | secVal != realVal * seed | + | secVal == realVal * seed |
+ | |||
+ | が成り立つはず。 | ||
+ | |||
+ | もしrealValが書き換えられていると、そうはならないため、チートが検出できる。 | ||
- | が成り立つはずです。 | + | if (secVal != realVal * seed) { |
+ | cheatDetect(); | ||
+ | } | ||
- | もしrealValが書き換えられていると、そうはならないため、チートが検出できます。 | + | まとめたクラスは以下の添付ファイルで。 |
- | if (secVal != realVal * seed) { | + | ただし、この方法もswf自体がデコンパイルされて書き換えられると有効では無いので、swfの暗号化が必要。 |
- | cheatDetect(); | + | |
- | t = secVal / seed; | + | |
- | } | + |
(This host) = https://njf.jp