1: 2015-05-22 (金) 04:52:21 njf[5] [6] [7] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ゲームでのチートの主流は表示されている数値などをメモリ上で検索、それを書き換えるものです。 | ||
+ | 対策としては画面に表示される数値についてはメモリを多重化しておくという方法があります。 | ||
+ | |||
+ | つまりたとえば、realValという変数に実際の値を入れ、secValという値にそれを定数倍した数を入れます。 | ||
+ | |||
+ | realVal = t; | ||
+ | |||
+ | secVal = t * seed; | ||
+ | |||
+ | すると常に | ||
+ | |||
+ | secVal != realVal * seed | ||
+ | |||
+ | が成り立つはずです。 | ||
+ | |||
+ | もしrealValが書き換えられていると、そうはならないため、チートが検出できます。 | ||
+ | |||
+ | if (secVal != realVal * seed) { | ||
+ | cheatDetect(); | ||
+ | t = secVal / seed; | ||
+ | } |
(This host) = https://njf.jp