2016/07/22

ハッカーがポケモン GO のリバースエンジニアリングに成功

ボケモンGO

2016 年 7 月 22 日、Marc Laliberte 著

ポケモン GO の秘密を見つけるハッカーが間もなく登場するだろうとの予測が的中しました。この大人気のゲームは、多くの方がご存知のように、Android や iOS のスマートフォンの GPS、カメラ、画面を使って世界中にいるポケモンと呼ばれる動くキャラクターを表示する AR(拡張現実)ゲームです。「ポケモン、ゲットだぜ」という有名なキャッチュフレーズ(英語のキャッチフレーズは Gotta catch ‘em all!)にあるように、できるだけたくさんのポケモンを見つけることを目指すゲームです。公開以来の爆発的な人気で、アメリカのゲーム史上最大のヒットをまたたく間に記録しました。先週のデイリーセキュリティバイトで Corey がお伝えしたとおり、残念ながら、このゲームの人気を悪用して公式サイト以外からのサイドローディングでデバイスをマルウェアに感染させる例も見つかっています。けれども、これとは違う目的に自分のスキルを活かそうと考えたハッカーもいるようです。

ゲームの公開以降、Reddit の PokemonGoDev と呼ばれるコミュニティのユーザーが、アプリ-サーバー間の通信チャネルのリバースエンジニアリングに懸命に取り組んできました。Reddit の __Isitin__ と名乗るユーザーが先日、このゲームの通信プロトコルのガイドを公開し、続けて、すべてのポケモンとアイテムをまとめた情報ダンプも発表しました。通信チャネルを理解できれば、アプリを介さずにポケモン GO とのやり取りが可能になります。

サーバーからの応答コードの解読から程なくして、別のユーザーが、スマートフォンアプリから送信される要求を真似る Python ベースの API を作成しました。この API(Application Program Interfaceの略称)を使用すれば、ユーザーがポケモン GO のサーバーにクエリを送信し、ゲームの世界の詳細情報を受け取ることができます。これは、アプリそのもので利用されるのと同じ情報ですが、インタラクティブな方法ではるかに簡単にポケモンを発見できる近道がプレイヤーに提示されます。

この API とそのいくつかの改造版を使用してポケモンの場所をリアルタイムで地図上に表示したり、アプリをまったく使わずにポケモンを自動的にゲットしたりする、いくつものプロジェクトが既に進行中です。

リバースエンジニアリングに大いに興味のある私としては、さまざまなデベロッパーによるこうしたプロジェクトや彼らが作成した専用ツールには、本当に感心させられます。そして、ゲームの仕組みを解明したいと考える人が増えること自体は、とても良いことだと思います。けれども、一人のゲーム愛好者としては、このようなツールでゲームの楽しさが半減したり、ポケモン GO の開発元である Niantic がこのような動きを特定して禁止する方法を見つけたりするのではないかと危惧しています。プレイヤーがスクリプト化されたボットを使って自分のコーチの助けを借りてポケモンを自動的にゲットするようになったとしたら、ワシントン州ベルビューの公園に 500 人以上が殺到したような光景も見られなくなってしまうでしょう。

– Marc Laliberte