1. ホーム
  2. android

[解決済み] Androidゲームがハッキングされ続けている件【終了しました

2022-05-12 20:21:30

質問

私たちはこれまで何度か、ゲームを (安価に) リリースし、誰かがそれをハッキングしてミラーにアップする、ということを経験してきました。 私たちはすべてのアプリに Google アラートを設定したので、誰がハッキングを行ったかを毎日知ることができます。 今のところ、Googleが提案したようにライセンスサービスを実装しており、私たちの塩は、ユニークなデバイスIDでライセンスが開始されるたびにランダムに作られます。 チェックサービスは、アプリケーションの初回起動時に一度だけ実行されます。 そして、キーと保存された値に対して 512 文字のハッシュを生成し、以降 SharedPreferences で比較されます。

今、私は、一度のチェックが、おそらくアプリケーションがブロックされている場所であることを知っています。 バイトコードはおそらく、チェックを開始する行がないまま調べられ、再コンパイルされたのでしょう。

ここから、私は以前それが破られるのを見たので、コードを難読化したくありません。 もう少ししっかりしたものが欲しいですし、また、これを適切に行う方法を学びたいのです。 ハッキングされたバージョンを探す人は 2% しかいないので、この時点ではお金を稼ぐことよりも学ぶことに興味があります。

今のところ、私自身は、ゲームのいくつかの起動領域に配置される乱数ジェネレータを思いつきました。 開始されたとき (たとえば、50 回のうち 1 回) に、ライセンスがチェックされます。 この方法では、クラッカーは、コンパイル、排除、コンパイルと、それぞれのケースを排除しなければならないので、ハッキングが難しくなることは承知しています。しかし、この方法はまだクラック可能です...そこで、皆さんは何を提案しますか? 繰り返しますが、私はセキュリティのこのプロセスに本当に興味があるので、これを難読化やタイムスタンプに基づく定期的なチェックに関する議論に変えないで、教育してください。

ありがとうございます。

どのように解決するのですか?

私のアイデアはハッカー対策ではありませんが、ゲームをハックする興味をなくすことができるかもしれません。

フリーミアムモデル

1) 最初の5~10レベルは無料にして、人々がゲームを学び、お金を払わずに楽しむことができるようにする。最初のレベルをハックしたいと思う人は少なくなり、ゲームはフリーミアムモデルによってさらに普及するでしょう。

シェアウェア/クラスターレベルパック

2) ゲームのレベルやロジックの一部をオンラインにしておく。例えば、レベル5や10、15に到達したとき、ゲームの小さなパーツをダウンロードし、毎回ゲームから進捗ログを送信し、可能な値+ハッシュコードに対してこれを検証します。これはおそらく、ハッキングされたアカウントを自動的に閉鎖することを可能にするでしょう。

ステルス チーター保護

3) ゲーム中に配置する小さな警告フラグを数えるだけでもよいでしょう。ゲームロジック自体にこれらのフラグを構築することはありません。ゲームプレイを中断させるようなことはしないでください。 そして、ユーザーがレベルモンスターの終わりに到達したとき、ログに記録された警告フラグがあるかどうかをチェックします。これらはゲーム内に表示されないので、ハッキングされたエディションで知らないユーザーが何時間も何日もプレイしているうちに、突然、ゲームにバグがあるためにゲームを終了したり次のレベルに進むことができないことに気がつくかもしれません。そのユーザーは、このバグがハッキングされたクライアントでのみ発生することを知りませんでした。

結論

クラッカーより賢くなれ。仕事が終わったと思わせて、彼らをだますのです。コピープロテクトを作成し、より高度なクラッカーがそれを取り除くことができることを知っています。しかし、彼らはおそらく、クラックがすべて動作するかどうかを確認するために50レベルをプレイすることを望んでいないでしょう。

この問題に気づいたら、彼らもクラックを始めるかもしれません。しかし、ゲームをレベル パックに分割すれば、各パックのダウンロードの間に検証を行うことができます。ですから、ハックされたクライアントのハッシュ データを受け取ったら、例外処理を実行して、クライアント上でゲームをクラッシュさせればいいのです。おっと、ゲームがクラッシュしました。ハックされたからとは言わせません。プログラム エラーが発生する可能性があります。)

繰り返しますが、これはハッカーの証拠ではありません。しかし、次のゲームに移るには十分なほど、彼らを困らせるかもしれません。最後に、ゲームの定期的な更新を行い、最新バージョンのみが記録を投稿することができるようにすることもできます。