ポケモンGOハッキングクロニクル

翻蚳者からの玹介



Nianticず远加゜フトりェアの開発者ずの関係に぀いおの以前の蚘事で興味深いず考えられたため、圌はこの話を翻蚳したした。

この甘いストヌリヌは、史䞊最高か぀最もプロフェッショナルなハッキングではありたせんが、共通の目的に埓事するオヌプン゜ヌスコミュニティの居心地の良い雰囲気に浞るこずができたす。 おそらく誰かが過去の日々を思い出すでしょう...

オリゞナルの䜜者は、圌が開発に粟通しおいないこずを認めおいたすが、これはより良いこずも可胜です-䞀般的な雰囲気は䞍必芁な技術的詳现なしで十分に䌝達されたす。 技術的な詳现に興味がある堎合は、テキスト内のリンクをたどるか、結果のAPIを解析するだけです。 はい、あなたはテキストが時々APIの䜜成に぀いお、たたはそれをハッキングするこずに぀いお蚀っおいるず混同されるかもしれたせん。 これは、ゲヌム自䜓のAPIず、倖郚からゲヌムを制埡するために開発者が䜜成するAPIの2぀の異なるAPIを指したす。 コンテキストによっおそれらを区別する必芁がありたす。 はい、アップデヌトは急いで曞かれ、時には疲れた眠い人によっお曞かれおいたこずにも留意する必芁がありたす。 たた、リンクが豊富であるこずをおizeびしたす。リンクの䞀郚は既に機胜しおいたせん。 redditの圢匏は蚘事の圢匏ずあたり䞀臎しおいたせんが、面癜いず思われたした。



背景



APIは、曎新された公匏クラむアントを陀くすべおの゜ヌスからのリク゚ストの受け入れを停止したした。 珟圚、圌は「unknown 6」を必芁ずしたす。これは以前のバヌゞョンのAPIにありたしたが、テストされおいたせんでした。 珟時点では、公匏クラむアントのみが正しい「䞍明6」を䜜成できたす。 問題が「䞍明6」にあるず完党に確信しおいるわけではありたせんが、それは非垞によく䌌おいたす-これは実際にはただ再珟できない唯䞀の倧きなデヌタです。



この倉数は以前のバヌゞョンのAPIに既に含たれおいたが、サヌバヌはそれを確認しなかったため、曎新の前埌にアプリケヌションのバヌゞョンを取埗しお比范するこずはできたせん。



倉数自䜓の最終的な倀は重芁ではなく、単玔な遞択は圹に立ちたせん。倀は必芁ありたせんが、「䞍明な6」を生成する方法が必芁です。



バヌゞョンを再䜜成し、APIの操䜜を埩元するために、生成された堎所を正確に芋぀けようずしおいたす...

コヌドの䞀郚は解析が難しいため、これは非垞に困難です。



物語



08/04/2016-00:49どうやら、ロゞックずプロトコルが倉曎されたようです。

08/04/2016-01:37プロトコルは倉曎されおおらず、新しいハッシュは衚瀺されおいたせん。 おそらく珟圚、リク゚ストはいく぀かの暗号化方法で眲名されおいたすが、ただわかりたせん。

08/04/2016-02:07倉曎が簡単ではないこずが明らかになり、リバヌス゚ンゞニアリングには倚くの時間がかかる可胜性がありたす。

08/04/2016-08:08誰もが「unknown 6」の定矩に取り組んでいたす。 既知のデヌタはすべおここで収集されたす。

08/04/2016-15:06「䞍明6」が倉曎の原因であるこずを確認したす。

2016幎8月5日、1400-突砎口 開発者は、「unknown 6」が生成される堎所を芋぀けたようです。 次に、プロセスを再䜜成し、すべおが機胜するこずを期埅する必芁がありたす。 そしお、私たちにずっおすべおを壊したのは「䞍明6」だったずいう事実です。

14:30-䞍協和音のチャンネルはプラむベヌトモヌドになりたした。他の人が私たちのブレヌクスルヌを匕き継いでいるからです。 私も䞍協和音から投げ出されたので、おそらく曎なる曎新はないでしょう。

16:20私は垰るこずを蚱されたした。 これがたさに「䞍明6」であるこずを確信しおいたす。 これは玠晎らしいこずです。さもなければ、それを再珟するためのすべおの䜜業は䞍芁になりたす。 私たちは正しい軌道に乗っおいたす。

16:30-倚くの難しい仕事ず理解できない蚀葉。 私が理解しおいるように、「未知の6」のほずんどがどこで䜜成されおいるかがわかりたした。 ここで、生成のための入力デヌタず、この未知のものをさらに暗号化する方法を理解する必芁がありたす。 ただやるべきこずがたくさんありたす...

18:00-暗号化の䞀郚を分解し、゜ヌスデヌタを郚分的に理解できるようになりたした。 すべおの暗号化を調べるずすぐに、逆コンパむルされたコヌドを実行しおプロセスを繰り返すこずができたす。

19:30-䞀歩近づいた...

20:30-ブレヌクスルヌ2「unknown 6」を生成する2぀のコヌドを結び付けたした。 暗号化関数が呌び出される堎所を芋぀けたした。 先ほど蚀ったように、暗号化機胜は逆コンパむルされおいたす。

21:15-次の2぀のこずが残っおいたす。

暗号化の逆コンパむルされたバヌゞョンを人間の圢にしたす。 これはカスタム暗号化であり、逆コンパむルされたコヌドは玄200ペヌゞのテキストを必芁ずしたす...人々はそれに取り組んでいたす-ゆっくりですが確実に。 仕事の最も難しい郚分ではありたせんが、時間がかかりたす。

残りの入力を定矩したす。 それは非垞に困難な堎合がありたす... 3〜4個のフィヌルドが残っおおり、小さなブレヌクスルヌごずに喜んでいたす。

22:30-ニュヌスはありたせんが、「圌らは仕事をしおいる」ずいうこず以倖は、最終日に぀いお䜕か曞いおおくずいいず思いたした。

redditを䜿甚したプログラマヌの䜜業ず、「unknown 6」を解読するための共同䜜業を芋るのは非垞にクヌルです。 ちなみに、これは議䌚のハッカヌが「砎った」同じ未知のものです。 しかし、Pokemon Go開発者コミュニティははるかに倧きくなっおいたす。 APIの倉曎以降に発生した24時間のうち20時間ハッキングされおいる人もいたす。 / u / keyphactが40時間スリヌプしなくなりたしたたあ、たじめに-眠りに぀く。 人々はわざず疲れ知らずに働きたす。 私たちにはできるず思いたす。



数時間で「unknown 6」を䜜成するコアを芋぀けたした。 暗号化機胜が逆コンパむルされ、それらの呌び出しの堎所が芋぀かりたした。 入力デヌタの10ず暗号化機胜の通垞の実装のみが残りたす。 しかし、ずおも近いが、ずおも遠く。 察凊できたすか



23:30-暗号化のほずんどを理解したした。 ただし、入力デヌタプロトバッファがどのように保存されるかはただ理解しおいないため、非垞に耇雑です。 これは、残りの入力よりも先に進むために必芁です。

01:30-完党に機胜する暗号化がありたす 圌を完党に認識しおいたせんでしたこれは、画期的な3ず芋なすこずができたす。 プロトバッファに察凊するために残っおいたす。



これは私にずっおも非垞に興味深く、有益です。 開発者が䜕をしおいるのか、私にはほずんどわかりたせん。 たずえば、「protobuffer format」ずは䜕ですか 入力ず暗号化の間のどこかにあるず蚀われたした。 入力デヌタを受け取り、それらからパケットを圢成し、暗号化のために送信したす。



暗号化はできたしたが、入力がどのように圢成されるかわからないため、入力を刀別できたせん。 そこで、独自のパケット圢匏プロトバッファを䜜成しおいたす。 埐々に、段階的に...プロトバッファを理解するずきに、入力がより明確になるこずを願っおいたす。

03:30-特別なニュヌスはありたせん。 私たちは働き、前進しおいたす。



コミュニティの健康を確保するこずはめちゃくちゃ難しい䜜業であったこずに蚀及する必芁がありたす。 それは論理的な決定のない悪倢であり、モデレヌタヌはそれに察する「良い」答えを持っおいたせんでした。

それはすべお簡単でシンプルなものから始たりたした-誰もがAPIを修正するために協力できる䞍和のオヌプンチャネルです。 しかし、少し埌に、すべおがそれほど簡単で単玔ではないこずが明らかになりたした...



チャンネルの人々の数は増え続けたした。 「APIの準備はい぀ですか」や「APIはどうなりたしたか」などの倧量のスパムに぀ながりたした。 仕事が䞍可胜になり、チャンネルにメッセヌゞを投皿する暩利を制限する必芁がありたした。



さらに悪いこずに、私たちの仕事を自分のものずしお提瀺し、新しいAPIの準備がい぀になるかに぀いおコミュニティに虚停の玄束をした人もいたした。 そしお、モデレヌタヌはチャンネルに投皿する暩利のリク゚ストでスパムされたした。 チャンネルを完党に隠すこずにしたした。



䞀般的な䜜業に察する適合性をテストするための2぀目のチャネルを䜜成しようずしたした。 しかし、最終的には、最初のチャネルず同じ問題が始たりたした。 人々はモデレヌタヌに怒っおいたした。なぜなら、圌らは最初のチャンネルの玠材にアクセスできなくなったからです。圌らは私たちがずっず前に完了した䜜業を繰り返さなければなりたせんでした。

今、私たちは再び透明に向かっおいたす。 私たちは最初のチャンネルを誰もが再び読めるようにしたした。 誰もこれを再び悪甚しないでください。 たた、すべおの人向けにオヌプンなgithubずwikiを䜜成したした。



このレッスンから他にどんな結論を導き出すこずができたすか いいえ、おそらく。 この解決できない状況を解決するために圌らが行った途方もない量の䜜業に぀いお、私はモデレヌタヌに感謝したいだけです。



そしお今、私は寝たす。 メむンチャネルのメッセヌゞは、あらゆる皮類の技術甚語で理解するために倚少耇雑であるため、API曎新甚のチャネルを開きたした。 明日たた戻っおきたす。



2016幎8月5日、1300-珟圚の問題の詳现な技術説明です。

13:30-特別なニュヌスはありたせん。仕事をしおいたす。 プロトバッファにはある皋床の進歩があり、いく぀かのフィヌルドを特定したしたが、ただ倚くのあいたいなデヌタがありたす。 たた、暗号化機胜を分析しお、その発生方法を完党に理解したす。 リバヌス゚ンゞニアリングは困難で退屈な仕事です

たた、いく぀かのコメントに答えたいず思いたす。 よくある質問

Q私はこれを行う方法を手䌝うこずができるず信じおいたすか

A残念ながら、メむンチャンネルは新しい開発者には閉鎖されおいたす。 しかし、あなたは私たちの公開リポゞトリで助け、プルリク゚ストを行うこずができたす。

Q開発者はxを詊しおください。

Aあなたが䜕に぀いお話しおいるのか分かりたせんが、おそらく圌らはすでにそれを詊したした。 あなたが本圓に画期的なアむデアを持っおいるず確信しおいるなら、䞍和のどこかにそれを曞き留めおください。

15:30-特別なニュヌスはなく、ただ䜜業䞭です。



redditに新しいスレッドがありたす。 あなたがプログラマヌでない堎合、あなたが理解しそうにない技術的な詳现がありたす。 曎新が衚瀺されない堎合、これは開発者が積極的に䜜業しおいるこずを意味したす。 たた、すべおをある皋床理解しやすいtwitterを䜜成したした。曎新があるたびに、そこにアクセスできるようになり次第曞き蟌みたす。



たた、䞍䞀臎の招埅を氞続的にしたした。その寿呜はもう切れたせん。

垞に最新情報を入手し、停のtwitterアカりントの出珟を避けたいず考えおいたす。

テキストの長さの制限に達したした。 さらなるアップデヌトはこちらです。



2016幎8月5日、1600-別の入力フィヌルドを定矩したした 最終的に䜕らかの進歩を芋るのはクヌルです。 今すぐ゜リュヌションに䟝存しないでください。もう1぀フィヌルドが残っおいたすが、すでに䜜業䞭です。

17:00-先ほど述べたフィヌルドをチェックしたした-はい、すべお順調です みんな気分がいいので、私たちは前進しおいたす。

18:00-最埌のフィヌルドは、どういうわけかハッキングしたフィヌルドず関連しおいるず思いたす。 これが䜕らかの圢で圹立぀こずを願っおいたす。

18:30-APIハッキングコミュニティがボットをサポヌトしおいないこずを繰り返し申し䞊げたす。 APIを壊すだけです。 したがっお、NianticがすべおのMITMアプリケヌションをトレヌスできるこずを確認したいず思いたす。たずえば、pokeballのスロヌを修正しお、垞に正確になるようにしたす。 このようなアプリケヌションを䜿甚する堎合、Nianticはほずんどの堎合、すでにそのこずを知っおいたす。



これが犁止されるかどうかはわかりたせんが、Nianticが理論的にこれを決定できるこずを確認したした。 しかし、これは面倒なこずではありたせん。APIのハッキングに取り組んでいたす。



20:00-開発の前に特別なニュヌスはありたせん。 残りの入力はただ䜜業䞭です。

私たちはあなたず通信する倚くのチャンネルに適応したす。 Discord、Twitter、Reddit、この投皿、githubリポゞトリがありたす。 それらは単にメッセヌゞであふれおいたす。 ただし、瀟内コミュニケヌションははるかに優れおいたす。 盞互䜜甚のセットアップずサポヌトは、借金ず時間がかかる堎合がありたすが、刺激的です。 開発者がAPIをクラッキングするこずで冷静にビゞネスに取り組めるこずを知っおうれしいです。

23:30-プログラマヌから人間に翻蚳するための曎新を埅っおいたす。 私たちはすでに行きたしたが、さらに最終目的地に行きたした。

00:45-過去数時間の進捗は、ブレヌクスルヌ4ず呌ばれたす。

さらに3぀の入力フィヌルドを開きたした。 フィヌルドの1぀は、認蚌チケットの暗号化されたたたはハッシュされたバヌゞョンであり、GPS䜍眮ず組み合わせお、2番目のフィヌルドが取埗されたす。 3番目も、䜕らかの方法で認蚌チケットに関連しおいたす。

「組み合わせ」は、実際に存圚するものを匷力に単玔化したものです。 プログラマヌの仕事の実際の耇雑さは、私の理解レベルをはるかに超えおいたす。

珟圚、残りのフィヌルドに取り組んでいたす。 たたはフィヌルドで。

GMT 03:30-進捗がほずんどないため、あたり曞きたせんでした。

いずれかのフィヌルドを12時間クラックしようずしおいたす。 開始時よりも倚くのこずを知っおいたすが、ただブレヌクスルヌはありたせん。

このフィヌルドは認蚌トヌクンず結合されおいないこずはわかっおいたすが、セッションに䟝存したす盎接ではない堎合がありたす。 たた、その長さ16バむトも知っおいたす。 情報の曎新に取り組んでいたす。

珟圚、ほずんどの開発者は寝おいたす。 これは圓然の䌑息です。 寝に行きたす



2016幎8月6日13:00-ですから、これらは玔粋に私のコメントになりたす。 これが唯䞀の本圓の情報源であり、残りは停物です。 今、私は自分自身ず、開発者に぀いおです。 この決定は、開発者ぞの䞍必芁な圧力を取り陀くために行われたした。



私が眠っおいる間は、開発者も眠っおいたためか、実際には䜕も起こりたせんでした。 私たちにsoをたくさんもたらしたこの分野は、その名にふさわしく、今では「䞍明22」になりたす。 さらに耇雑なのは、セッションにアタッチされおおり、デヌタの収集がかなり難しいこずです。 この分野ずもう1぀を分析しおいたす。

14:30-ニュヌスはありたせん。「これたでのずころ䜕も起きおいたせんか」ずいう質問に答えたいだけです。 あなたは3〜4個のフィヌルドが残っおいるず蚀いたしたが、すでにもっず倚くがハッキングされたした」



実際、これらの3〜4フィヌルドは、ハッキングが必芁な他の倚くのフィヌルドの組み合わせであるこずが刀明したした。 フィヌルドがいく぀残っおいるかずいう質問に答えるこずは䞍可胜です。 間違った期埅をしたくありたせん。 はい、わかりたせん。

17:00-ブレヌクスルヌ5開発者は、「䞍明な22」は必芁ないこずを発芋したした。 そのうちの䞀人は、「はい、お母さん」ず期埅しお答えたした。 珟圚、開発者はこの仮説をテストするデモアプリケヌションを䜜成しようずしおいたす。 圌らはずおも興奮しお祈っおいたす。

API呌び出しが成功しおも、それは単なるプロトタむプであり、APIの修正ではないこずに泚意しおください。 開発者は、かなりの数のフィヌルドでスコアを付けたした-たずえば、Androidデバむスからのみ送信されるフィヌルドで。 それを回避するために、開発者はiOSの䜿甚を゚ミュレヌトしたす。 これがあたりにもうたくいかないようにするには、さらに倚くのこずをする必芁がありたす。

17:30-プロトタむプの最初のバヌゞョンは機胜したせん。



18:00-ニュヌスはありたせん。「䞍明22」がなぜこのようなhemoであるこずが刀明したのかをお䌝えしたかっただけです。 「䞍明22」は、アプリケヌションの初期化䞭に生成され、セッションにバむンドされるランダム倉数です。

開発者は、「未知の22」に圱響を䞎える可胜性のあるすべおのものを慎重に怜玢したしたが、入力パラメヌタヌがないこずに埐々に気付きたした。 これは単なるランダム倉数です。 なぜそれを決定するのが難しいのかを説明しようず思いたす。



実䞖界の䟋ニュヌペヌクの気枩を調べたいず想像しおください。 それに盞関する膚倧な数の倀がありたす。 たずえば、アむスクリヌムを販売しおいたす。 売䞊が増加するず、気枩が䞊昇したす。 ただし、アむスクリヌムの販売に基づいお枩床を蚈算するのは無駄です。 盞関は因果関係を意味するものではありたせん。 「unknown 22」に぀いお読むずき、これを考慮しおください。

最初に、開発者は認蚌トヌクンを倉曎しようずしたしたが、これを行うたびに「Unknown 22」も倉曎されたした そこで、圌らは承認が「䞍明22」に圱響するこずを確認するこずにしたした。 これを行うには、デヌタが必芁でした。



ログむンしお戻る必芁があるため、このデヌタの収集には長い時間がかかりたした。 たた、「unknown 22」は、たずえばSessionID、Auth_token、Auth_ticketなど、他の倚くのフィヌルドの圱響を受ける可胜性がありたす。 誰かが気付くたで、それぞれの䟝存関係を理解し​​ようずしたした。「䞍明な22」には入力パラメヌタヌがありたせんでした。



「䞍明22」は、アプリケヌションが起動するたびにランダムに生成されたす。

したがっお、ナむアンティックはそこに「あるべき」ずいう意味をチェックするこずはできたせん-それは偶然によるものです だから、そこに䜕でも抌し蟌めたす。 これはただ理論ですが、すべおの開発者はそれに固執しおいたす。

18:30-ブレヌクスルヌ6。 最初のAPI呌び出しが成功したようです 曎新を埅ちたす。確認は1時間以内に行われたす。

18:35-動䜜したす 私を信じお、それはあなたず同じくらい興奮を匕き起こしたす。

19:00-䞍協和音での公開チャットはただ空です。 開発者からの曎新をただ埅っおいたす。 䜕も衚瀺しないようにチャットも曎新しおいたすか

20:00-しばらくの間、情報はありたせんでした。 しかし、圌らは実装に取り​​組んでいるず蚀うので、明らかにこれ以䞊のこずはありたせん。 次のアップデヌトは玠晎らしいはずです、私たちず䞀緒にいおください...

20:30-パブリックgithubを削陀したした。 おそらくどこかに移動したす。 どうやら、䜜業が進行䞭です。 曎新あらゆる皮類の著䜜暩䞊の理由でリポゞトリが閉じられたす。

22:00-私はすでに疑い始めおいたすが、それでも圌らは成功したAPI呌び出しを行うこずができたず信じおいたす。 どうやら、圌らはい぀、どのように、䜕を公開するかを考えおいたす。 圌らがgithubを閉じたこずを考えるず、倧倉な䜜業でした。

圓初から、この䜜品には2぀の段階があるこずを誰もが知っおいたした。 最初にリバヌス゚ンゞニアリングを行い、次に新しいAPIを䜜成したす。 APIテストの呌び出しが成功するこずは、途䞭で䜜業するこずを意味するため重芁です。



ただし、これはリバヌス゚ンゞニアリングが完党であるこずを意味するものではありたせん。 䞀郚のバむパスされたフィヌルドは必芁ありたせんでしたが、それらをハックしたい堎合がありたす。



圌らがAPI呌び出しを受け取らなかったこずが刀明した堎合、私は銬鹿のように芋えたすが、私はこの機䌚に我慢する準備ができおいたす。

文字数の制限に達したした。 ここから続行したす 。



ここで、前のコメントのように、自分の石鹞も曞きたす。 私は高床なプログラマヌではありたせんが、最初から「unknown 6」ずいうグルヌプに所属しおいたした。

2016幎8月6日23:00-小さな曎新。 圌らは、圌らの資料が再び取り壊されないように、著䜜暩を回避する方法を探しおいたす。 たた、実装に取り​​組んでいるず曞いおいたす。぀たり、APIリク゚ストが成功し、APIの䜜業バヌゞョンにすでに取り組んでいるずいうこずです。

00:00-圌らは「最埌のブレヌクスルヌ」が残っおいるず蚀いたす、これが䜕か良いこずを意味するこずを望みたしょう。

圌らの仕事は、暩利や曎新を芁求する野生のスパムによっお劚げられおいたす。 コヌディングさせおください APIがなくおも別の日に暮らすこずができたす。



たた、開発者が自分の利益のためにそれを行ったず非難する人もいたす。 これは真実ではありたせん。 私はこれらの人の倚くを知っおいたす、そしお、圌らはただ楜しみのために、挑戊のためにそれをしたす。 圌らはAPIを誰にも売る぀もりはありたせん。

圌らはたた、「特定の有料サヌビスがAPIの修正があるず蚀っおいるずいう事実は、私たちがそれを圌らに売ったずいう意味ではない」ずも蚀っおいたす。

00:30-蚀いたかった-ボットは嫌いだ。

00:45-APIが機胜しおいるこずを確認しただけです完党ではありたせん。 しかし、圌らはそれに぀いおたったく曞いおいない。

ボットを最初にロヌンチしたずいう噂を広めたすべおの人のために。

私たちの成功に興奮しお、チヌムメンバヌがボットでただ十分に準備されおいないAPIを䜿甚し、スクリヌンショットを投皿したした。 たた、他の䞀郚のチヌムメンバヌは、ボットに関連しないプロゞェクトpgoapiやRocketAPIなどにAPIを远加したした。



最埌に、完了するずすぐに、党員が完成バヌゞョンに同時にアクセスできたす。




1:15-完了、APIがリリヌスされたした

勝利 開発者は3日ず5時間でAPIを砎壊したした。 䟡倀ある成果。

1:30-このAPIは簡単に远跡でき、Niainticは非公匏クラむアントを䜿甚しおいるず刀断できたす。 これは開発者にずっお非垞に適切であり、開発者に暜をかけるべきではありたせん。

たずえば、高床は考慮されたせん。 すべおのリク゚ストはiOSデバむスから送信されるず思われたすが、それは明らかなAndroidであるため、非垞に疑わしいです...ただ倚くの䜜業がありたすが、機胜するAPIを埗お、これでプロゞェクトぞの参加が完了したした。



1:45-寝たす。 昚倜はほずんど眠れたせんでした。 すべおの開発者、モデレヌタヌ、その他の参加者に感謝したす。 そしお、問題の解決を蟛抱匷く埅っおいた人々に。

あなたのサポヌトは玠晎らしかった。 1週間前、私は自分がPokemon Goハッカヌコミュニティの本栌的なマネヌゞャヌになるこずすら想像できたせんでした。

みんなありがずう

/ u / DutchDefender



翻蚳者から



ご存知のように、物語は終わりではなく、物語は始たったばかりです。Nianticはアプリの改善芁求を聞いおいたすかそれずも、圌は再び自分を守ろうずしたすかコミュニティには、新しい保護方法を打ち砎る匷さ、欲求、スキルがありたすかすぐにわかりたす。



All Articles