情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

ポケモン地図P-GO SEARCHが使えない原因「ハレー彗星」の意味と対策状況や復活見込みについて(2016年10月9日)

ポケモンGO (157) ポケモンGO-ポケモン地図 (33)

現在、人気のポケモン地図アプリ「P-GO SEARCH」にポケモンが表示されません。その原因と言われている「ハレー彗星」は、とあるポケモンGO側の仕様変更アップデートのことを指しています。

この「ハレー彗星」アップデートの内容と、その対策の進捗状況について紹介します。

P-GO SEARCHが使えなくなるまでの流れ

現在、ポケモン地図「P-GO SEARCH(ピーゴーサーチ・P-GO)」を開くと、次のメッセージが表示され、ポケモンの位置は一切表示されません

pokemon-go-p-go-search-halley-2016-10-08

【お知らせ】ハレー彗星の影響により出現中情報が正常に表示されません。ポケソース情報(出現記録→ポケソース表示)のみでご利用ください。

また、「使い方」ページには、次のように書いてあります。

ハレー彗星の影響により出現中情報が正常に表示されません。 先日のコイルアップデートも根本的には解決しておらず、同時に2つの問題が生じているため復旧はいまのところ無理です。

このとおり、原因は「コイルアップデート」と「ハレー彗星」です。

コイルアップデート」が実施されたのが10月6日、その時点ではまだP-GO SEARCH利用可能でした。また、対策も進んでいました。

「ハレー彗星」が問題

しかし、もう一方の「ハレー彗星」と呼ばれる変更が実施された10月8日、P-GO SEARCHにはポケモンが一切表示されなくなってしまいました

つまり、致命的だったのは、この「ハレー彗星」アップデートです。

「ハレー彗星」の意味するものはAPI 0.35の終了とAPI 0.39の出現

P-GO SEARCH作者が「ハレー彗星」と呼んでいるアップデートの正体は、APIバージョン0.35の提供終了です。

ポケモン地図アプリは、元をたどればポケモンの位置情報をポケモンGOの非公式APIを使って取得しています。

そして今回、今までずっと利用していた非公式APIバージョン0.35が突然提供終了になり、0.37、そしてAPIバージョン0.39へと完全移行されてしまった(10月8日 04:00 JST)のです。

現時点ではまだこのAPI 0.39は解析が完了しておらず、ポケモン地図アプリはポケモンの位置情報を取得できない状況です。

「ハレー彗星」対策 → API解析

もちろんこうなれば、新しいAPI 0.39の解析をする、というのが対策となります。

現在、実際に解析が盛んになっており、/r/pokemongodevでは、その解析の進捗に関する投稿を確認することができます。

最終的な「APIの分析完了」は「Nianticが正規のプレイヤー(アプリ)と区別が付かない状態」でAPIを好き勝手に利用できるようになることが目標です。

この分析が完了して、ポケモン地図アプリが何食わぬ顔でAPI 0.39を使うようになれば、一気にまたポケモン地図が復活することになります。

しかしもちろんポケモンGOの開発元であるNianticは、解析を難しくする対策をしてきているでしょうから、解析は従来より難航するものと思われます。

P-GO SEARCHも新APIの解析完了待ち

P-GO SEARCHもこの分析が完了しているのを待っているものと思われます

そして、実際にAPI 0.39の分析完了からしばらくすれば復活する可能性があります

新API 0.39 の解析はいつ終わるのか

となると、ポケモン地図アプリユーザーが気になるのは、いつ分析が終了するのか、です。

旧API 0.35 は、2ヶ月ほど前にリリースされたものですが、その当時は、3日と4時間で解析が完了し、サードパーティアプリからの利用が可能になったという実績があります。

今回の新API 0.39 は、9月23日にリリースされており、9月26日に正規アプリからのリクエストを0.39に切り替えました。

したがって、既にリリースされてからは2週間以上が経過しています

ただこれは、API 0.39への切り替え後もAPI 0.35が継続利用可能だったため、本格的な解析はまだ始まったばかりとも言えます。

ここから数日間が解析の本番で、これから数日で解析が完了するのか、はたまた1ヶ月、それとも解析できずに終わるのか(さらなるNiantic側の対策に先を越されるか)、それはまだこれから結果を見てみないと分からない、という状況です。

例えばここには「少なくとも1週間」と書かれています:

“When will my application work again?”
No one knows. Stay tuned for updates, but make sure you DO NOT ask the devs/mods this question because you will slow them down! In general the API needs to be fixed and then the developer of your application needs to update the application to use the new API. Previously it took the devs 3 days and 4 hours to break the API, it will likely be more difficult for reasons described below, expect at least a week. The devs didn’t like timeframes the previous API-break, and they won’t do them this time. They fear it sets expectations. But I wanted to face the question, not dodge it. This however means two things: 1. This is my wild guess. 2. You will not, ever, get a better answer from the devs, don’t even bother trying. 引用元

API解析の進捗状況詳細

(読み飛ばすのおすすめ)

APIの解析で最も厄介なのが、checksumの計算手順の解析です(「暗号化された」と表現されていることも多いがちょっと違う)

APIを利用するためには、APIリクエストのパラメータに応じて、適切なchecksum値を生成し、あわせて送信する必要があります

しかし、0.35用の手順から変更されてしまい、0.39用の生成方法がまだ解析できていません。

より詳細には、前回同様のbreakpointを差し込んで解析する方法が対策されて使えないため、まずchecksumが計算されている部分のコード実行を追えるようにする、というところが現在の攻略対象となっているようです。

The problem right now is that anytime they try to add a breakpoint to allow them to find the hashing function, it causes an infinite loop because the code uses jump tables for function calls. When you add a breakpoint, that jump table gets jacked up and it stops working. So hardware breakpoints are the hope at this point. 引用元

こんな状況であるため、「自分もリバースエンジニアリング手伝いたい!」という人も多いようなのですが、そのような声に対しては、以下の通り、「専門家とかじゃなきゃ助けにならん邪魔すんな」な雰囲気のことが書かれています:

“Can I help the RE-effort?”
Probably not. Unless you know a lot about ARM/ptrace/hardware breakpoint. If you have outstanding expertise and experience in one of these, please go to the discord and help. 引用元

API解析完了後からP-GO SEARCHが復活するまで

ただ、P-GO SEARCH自体は現在も別のポケモン地図アプリに大部分を依存しているはずなので(日本のサービスはそのパターンが多い)、APIの解析が完了してその実装が公開されたとしても、海外の他のサービスが復旧して、それから遅れての復旧、という流れにはなりそうです。

コイルアップデート対策も進む

同時に、コイルアップデート(bot対策)の対策も進められています。

botからのアクセスであるという判定自体の回避方法の調査も進められていますが、その一方でbot判定されてしまうことを回避するのではなく、bot判定された後に表示されるCaptcha(写真を選ばせる人間かロボットかを判定するテスト)をユーザーの目でチェックさせるというポケモン地図ツールも出現しています。

どちらにしても、こちら側の対策もあわせて必要で、並行して進められています。

The devs were still working on the captcha-fix 引用元

他のアプリを探す流れ

一方ユーザーは、P-GO SEARCHが利用不能になったことで、代わりになる他のアプリ探しへ向かっています。

特にこの「Go Radar」は、P-GO SEARCHのようなポケモン地図アプリとは別の仕組みで動作しており、今回の非公式APIの変更をものともせず動作しています。

まとめ

P-GO SEARCHが利用不能になった原因の「ハレー彗星」とは、今まで使っていた非公式APIバージョン0.35が終了したことであり、P-GO SEARCHが復活するには、新API 0.39の解析完了を待つ必要がある状態のようです。

シェア用ツイート

参考

経緯の詳細は、次のページにまとめられています(英語)。

コメント(0)

新しいコメントを投稿