More Related Content
Similar to とあるCocos2dxアプリのチート編 (20)
とあるCocos2dxアプリのチート編
- 6. クライアントのメモリ改ざん事件
•脱獄したiPhone / root化したAndroidで動作する GamePlayerというツールを使用することで、アプリ内の メモリを書き換えられてしまう
•書き換えたい数値を検索して、その数値のデータを書き換 えることが可能
•HPが2000だったとした場合、2000という数値を検索し、メモ リ上に2000となっているのをユーザーが好きに書き換えら れてしまう ⇒HP 999999 のキャラとかを作成されてしまう ※とあるタイトルでの実例: http://www.xn--gameplayer--w94j5c19a.com/124.html
- 8. クライアントメモリ改ざん対策の実装例
Class MyCharacter{
private:
static constintKEY= 0xfedcba98;
intmHp; //<=直接セットせずに、setHp,getHpを介してアクセス
public:
inline intgetHp()const{ return mHp^KEY;}
inline void setHp( inthp){ mHp= hp^KEY;}
};
- 24. クライアント
サーバー
1.サーバーに、IDとパス ワード、遊んだダンジョン、 取得したスコアを送信
{”id”:” a7c4eab”,”passwd”:”te32BG”,”
dungeon”:2,”score”:100}
ユーザー行動のデータ再送信のケース
- 25. クライアント
サーバー
2.受け取ったデータを元に ユーザー認証を行い、正し ければサーバー内のユー ザーデータを書き換える
ユーザー行動のデータ再送信のケース
{”id”:” a7c4eab”,”passwd”:”te32BG”,”
dungeon”:2,”score”:100}
- 27. クライアント
サーバー
4.通信に失敗したみたい なので、もう一回データを 送ります
{”id”:” a7c4eab”,”passwd”:”te32BG”,”
dungeon”:2,”score”:100}
ユーザー行動のデータ再送信のケース
- 28. クライアント
サーバー
5.既に処理済みのデータが 来たので、データの更新は 行わずに結果だけ返さない といけない。
ユーザー行動のデータ再送信のケース
{”id”:” a7c4eab”,”passwd”:”te32BG”,”
dungeon”:2,”score”:100}
- 32. 不正課金事件の対策
•Android / iphone共に送られてきたデータが自分のアプリ内課金商 品が購入されているか確認しましょう
•AndroidではorderID、iPhoneではtransactionIDと呼ばれる決済ごと にユニークなIDがあるので、過去に決済されたデータは全て残して おきましょう。