おはようございます。キラキラ高専ガールです。
約2週間ぶりの投稿となりました。
このそれなりに長い時間で、よくあるチート手法や、主な対策方法、最近見かけた対策方法と思しきものを少し紹介します。
まずみなさん、チート行為とは、ゲームバランスの崩壊や、チートなしで遊んでいるユーザーの意欲の低下を招くものであり、許されることではないということを頭に刻み込んでからこの先を読んでください。
しっかりと刻み込みましたか?
さて、みなさんがチートと聞くと何を思い浮かべるでしょうか。チートというものは、最近活発になったものではなく、ゲームが世の中に出てからずっと問題となっています。
40代くらいの方でしたら、ドラクエというゲームやファイナルファンタジーというゲームのバグを利用して、周囲より強くなったという経験がある方もいるのではないでしょうか。この当時のチートは、ゲームのバグを悪用して自身が優位にゲームを進めるようにするといったものでした。
今から約35年前には、現在のようにインターネットに接続してプレイヤー同士が戦ったりする機能はなく、完全にその個人所有のゲーム機(ファミコン等)およびソフトウェア上でのチートであり、同じもので遊ばない限り第三者が害を受けることもないものでした。
その当時から35年ほど経った今のチートはどのようなものなのでしょう。
最近のゲームは、ほとんどがインターネットにつながり、世界中の顔も名前も性別も知らない赤の他人と共に遊ぶことができるようになりました。このような状態でのチートは、他のユーザーの意欲を奪い、ゲームの運営自体に大きな影響を与えるものとなりました。
例えば、最近流行りのAPEXというゲームがあります。
私は、ほとんどプレイしたことがありませんが、銃で撃ちあうようなPvPを楽しむゲームです。こんなゲームにチートを使ったユーザーが現れるとどうなるでしょう。そう、ゲームバランスが崩壊し、通常通り遊んでいるユーザーは、非常につまらなく感じます。
このようなPvP形式のゲーム以外にも、いわゆる音ゲーといわれるものがあります。皆さんはあまり知らないかと思いますが、画面上を流れる線のようなものをリズムに合わせてタップ、もしくはフリックし、その正確性やスコアを競い合うものです。
私自身、2年ほど前に音ゲーを楽しんでいたところ、チートを使っているユーザーに出会いました。
常にスコアが最大となり、一切ミスをしないというチートでした。このチートもまた、通常通り遊んでいるユーザーを不快にし、やる気を阻害します。
ここまででわかる通り、今日のチートは、単一のゲーム機(スマホ、パソコン等)には留まらず、第三者に害を与えます。
まとめると、以前とチート内容に大きな差はないのに対して、第三者への害が生じているというのが最近のチートなのです。
さて、チートの害について書いたところで、次は主なチートの方法について紹介します。
まず、チートといえば、昔は特定の文字列のバグを探してエラーを起こし、優位にゲームを進めるというものでした。
これはおそらく現代で言うところのバイナリ(ゲームのデータ)の改ざんに当たります。この方法は現在でも用いられていますが、少なくなってきているようです。
次に、メモリの書き換えです。いわゆるメモリエディタを用いてメモリを書き換え、特定の数値を変更するといったものです。
このツールは、検索してもらうと分かると思いますが、そこら中に落ちています。もし試してみたい場合は、自身でアプリを作って改ざんしてみてください。
最後に最近多いと言われているパケットの書き換えについてです。パケットというものは、通常暗号化されていますが、この暗号を復号し、中身を書き換え、再び暗号化してしまうというものです。私自身見かけたことはありませんが、とあるツールを使えば簡単にできてしまうと聞いたことがあります。
このような主に三種類のチートが存在します。
さて、この三種類のチートに対しての対策としてはどのようなものがあるのでしょうか。
皆さんはおそらくゲームのデータ改ざんについてはすぐに対策が思いつくのではないのでしょうか。そう、暗号化すればいいんじゃないかと思いますよね。確かに暗号化すれば改ざんされるリスクは若干減りますが、よく知られた暗号化方式ですと、ツールがすでに開発され、チーターももちろん利用しています。この改善策として、独自の暗号化技術を開発するというものがありますが、個人では難しいでしょう。
そこで、個人でも簡単?にリスクを減らす方法として、まずファイルをユーザーに与えないという方法があります。この方法を用いると、確実にデータ改ざんを抑えることができますが、サーバへの負担が増加するため、本当に重要なデータのみに留まります。
それ以外のデータは、コードの難読化や、複雑な暗号化によってチート対策を行うことができるはずです。
メモリの書き換えについては、書き換えられるであろうデータをあらかじめ何らかの方法で暗号化することによって書き換えを防ぐことができると考えられます。メモリ書き換えについては、私自身あまり経験がなく、詳しくはよくわかりませんが、とりあえずメモリエディタに検出されないようにすることで対策できると考えられます。
パケットの書き換えについては、どのような対策を行えばよいのでしょうか。近年、このパケットの書き換えはおそらくデータ改ざんに続いて最もよく用いられているチートなのではないでしょうか。このチートを防ぐ方法は、サーバ側でパケットの解析を行い、何らかの形で評価し、判別することが必要であると思われます。最近は、パケットを書き換えるツールなども溢れているようで、現状どの程度対策が行われているのかは知りませんが、早急な対策が必要であると考えます。
さて、ここまで対策について書いてきましたが、パケットの書き換え以外には、とある特徴があります。
それは、データ改ざんやメモリ書き換えの行うことができる端末は、脱獄済み端末、root化端末、エミュレータに限るのです。
この三つの端末に対して制限を行うと、前述の二種類のチートだけでなく、最近流行りのゲームアカウントビジネスや、チート代行業者の制限にもつながると予測されます。
特にエミュレータは、メモリ書き換えを行うツールが標準搭載されたものも存在し、この端末の制限を行うのは、非常に有用であると思われます。
これより、すべてのチートが脱獄済み端末、root化端末、エミュレータで行われているわけではありませんが、チーターが増えた時には、まずこの三種を疑うのが良いかもしれません。
この世に存在するチートをすべて排除することは不可能だと思われます。
ただし、排除ではなく、チーターを減らすことは可能です。最も疑わしき部分を排除していくことによって、より健全なゲーム運営が可能であると考えています。もし、今独自のアプリやサービスを開発しようとしている方がいれば、知っていることが大半だと思いますが、少し参考にしてみてください。
みなさん、チート行為は犯罪です。例え周囲がチートを楽しんでいたとしても、自分自身は全体にチートを行わないと心に決めてください。
そういえば最近見つけたチート対策について書き忘れていましたね。
最近、プロセカというゲームを楽しんでいて、とある違和感に気が付きました。このゲームもまた音ゲーなのですが、なぜか同じ難易度のフルコンボであっても、ごくたまに2コンボ多いユーザーがいます。不思議ですよね。
その後、独自調査によって判明しましたが、自動コンボツールを使用しているユーザーは、曲が表示されたところで2コンボ追加されるのです。この2コンボは、人間には全体にタップできないところにあり、2コンボ分増えていることからチートツールを利用しているユーザーであると一目でわかるようになっていました。私自身の調査のため、運営会社に一切問い合わせをしていません。そのため、この2コンボで判別しているのかどうかはわかりませんが、もしこの2コンボで判別しているのであれば、一般ユーザーでも判別可能であり、通報されやすくなるため、非常に画期的だと思います。