アプリケーションパッケージ解析 [1.58.2]

DecodeIngress.jpgデコード・イングレス(DeCode Ingress)
2014/08/14 01:03:17
アプリケーションパッケージ解析 [1.58.2] の紹介です。

1-58-2.jpg

アプリケーションパッケージ解析 [1.58.2]
2014年08月13日 Connor Tumbleson

私たちにとって8度目となる解析を紹介します。エージェントの皆さんはミッションの開発状況に関心を寄せていることでしょうが、アプリケーションパッケージを通じて明らかとなったこともわからないことも手に余るほどの変更があります。それでは見ていきましょう。

iOSの機能とジェイルブレイク
今回のアプリケーションパッケージを解析することで、iOS上の開発状況に数多くの手がかりを得ました。まずは新たな応答確認の変更を発見しました。

  • enableIOSPushNotifications
  • enableIOSPortalDiscovery
  • iOSPortalDiscoveryProcessIntervalMS

プッシュ通知機能とポータル申請機能はiOS版の利用者にとって朗報でしょう。パスコードの処理がこの一覧に挙がっていないことは残念ですが、おそらくはアップル社がパスコードを「アプリ内購入」と判断し、ナイアンティックに対して30%の手数料か機能削除を強いたのではないでしょうか。ご存じない方に説明すると、アップル社は iTunes でのアプリ販売すべてに手数料を求めているのです。ナイアンティックはこれを回避するだけのためにインテルマップへパスコード機能を追加したのでしょう。

残念なことに、応答確認の一覧に追加されていたのはこれだけではありませんでした。

  • enableRootLockOut

Android 端末におけるルートとは、Apple 端末におけるジェイルブレイクのことです。Android 端末でルートしている私はこの変更に震え上がりましたが、更に調査していくと、これはiOS版の利用者を対象としているようでした。次に挙げるブール値がイングレスのプレイ中に送信される端末情報の一部です。

既に扱われている端末情報を挙げてみましょう。基盤、ブート・ローダー、ブランド、端末、端末ID、ディスプレイ、指紋、ハードウェア、メーカー、モデル、プロダクト、ルート、タグ、タイプです。このような値の大半は、build.prop で確認することができます。Apple のみとAndroidのみとでこの一覧があるとすれば、iOS版でどのように動作するのかはわかりません。

  • canLaunchCydia
  • hasSubstrateLib

  • <string name="JAILBROKEN_ERROR">OS integrity check failed.</string>
  • <string name="JAILBROKEN_RESULT">Ingress will not operate correctly.</string>

ご存じでない方々へ説明すると、Cydia とは Apple App Store に承認されなかったものの代替的なアプリストアです。残念なことに、その名は不正なコンテンツやクラックコンテンツの巣窟として認知されていますが、Cydia を追加する利点は iOS 端末のテーマや外観を微調整できることです。要するに販売されている iPhone には標準でこのアプリケーションが入っておらず、巧妙な手法のなかにはどうしても Cydia のインストールと実行を要するものがあるということです。

Android で用意されたものは今まで iOSでも独自に用意されてきました。必要以上の詳細を省いて概要を説明すると、どちらかのシステムのプロセスを進めることができる構成だったのです。このツールはAndroid端末上でのルート権獲得などに利用されてきましたが、Ingressの不正行為にも利用できていたことが今回の変更理由なのでしょう。

注意すべきは、現時点では何もわからないということです。これは得られた情報のなかから推察したに過ぎません。これがジェイルブレイクしたすべての Apple 端末をロックアウトさせる意図ではないことを願っていますし、ルートされたすべてのAndroid 端末をロックアウトさせるとなればとんでもないことです。

ミッション
アプリケーションパッケージ内にはバージョン 1.55.0 から存在しています。

新たに多数のリクエストとレスポンスの追加を見つけ出しました。注目すべきは次のものです。

  • CompletePassphraseObjectiveParams
    • passphraseAnswer
    • (possible decoding mission?)
  • FieldTripCardViewed
    • Integration of Field Trip? (App by Niantic)
    • getCardUrl() - In reference to FieldTripCard
  • MissionBadge
    • imageUrl
    • missionDescription
    • missionTitle

「CompletePassphraseObjectiveParams」をご覧ください。パスフレーズの目的のためのレスポンスというものが何なのかはわかりませんでしたが、「passphraseAnswer」も含まねばならないことがわかっています。ミッションにおけるパスコードの解読のようなものではないでしょうか。

メダルに関連したレイアウトやビューの変更は膨大な量がありましたが、改めてメダルとバッジとは同様のものでないことに言及せねばなりません。メダルはミッションとは独立したものであり、独自のビューとダイアログボックスを備えています。しかし、メダルとバッジとが共存する部分が何かしらあるのかもしれません。それでは同一のレイアウトファイル内で見つけ出したメダルやバッジの名称を挙げてみましょう。

  • profiles-badge-details-title
  • profiles-badge-details-desc
  • profiles-medal-details-desc
  • profiles-medal-details-title

ヘリオス・アーティファクト
今回のアプリケーションパッケージには新たなモデル群がありました。通常得られるのはひとつかふたつのモデルですが、今回新たに得られたモデルは81種類に及びます。ft_waypoint.obj も加えるなら更にひとつ増えることでしょう。次の項目ごとに40のモデルが存在するのです。

  • artifact_frozen_helios_fragment_[1-40].obj
  • artifact_helios_fragment_[1-40].obj

1から40の各断片は、グリフによって個々に異なるアーティファクトとなっています。それらはゲーム内に顕現したかどうかで凍結状態か通常状態かとなるようです。

それではダニエル・ベントンによってレンダリングされたアーティファクトを見てみましょう。

01.png 02.png 03.png 04.png
05.png 06.png 07.png 08.png
09.png 10.png 11.png 12.png
13.png 14.png 15.png 16.png
17.png 18.png 19.png 20.png
21.png 22.png 23.png 24.png
25.png 26.png 27.png 28.png
29.png 30.png 31.png 32.png
33.png 34.png 35.png 36.png
37.png 38.png 39.png 40.png

リチャージ・ボタンの削除

recharge.png

その他

  • 構築 2014年08月11日
  • 漏洩 2014年08月12日
  • 応答確認の変更
    • [新規] enableIOSPortalDiscovery
    • [新規] enableIOSPushNotifications
    • [新規] enableRootLockOut
    • [新規] iOSPortalDiscoveryProcessIntervalMS
    • [新規] logSkipRegex
    • [廃止] minimumDogfoodBuildVersionCode

総括
開発はミッションとiOSの変更とで均等分割されているようです。けれども、バージョン 1.58.2 の公式発表には非常に関心を寄せています。iOSの変更に関して公式発表が行われるのかどうか、あるいは前触れなく導入されることにコミュニティが耐え得るのかどうかを見ていきたいと思います。いずれにせよ、ミッションの導入には期待しています。次回のバージョンでお会いしましょう

Decode Ingress
2014/08/14 01:03:17
Ingress Apk / Scanner Teardown [1.58.2]

http://goo.gl/dnxEtd

#DeCodeIngress #Ingress +Ingress

Ingress Apk / Scanner Teardown [1.58.2]
BY CONNOR TUMBLESON ON AUGUST 13, 2014 GAME, UPDATES

Here we are again for our 8th teardown. Agents are probably interested in the Mission development, but we have a plethora of changes both obvious and non-obvious to get through. So lets get started.

iOS - Features / Jailbreaking
This is an APK teardown, but there were tons of hints for recent development on iOS within our APK. First we saw these additional handshake changes of

  • enableIOSPushNotifications
  • enableIOSPortalDiscovery
  • iOSPortalDiscoveryProcessIntervalMS

So iOS users can rejoice as push notifications and portal submissions are almost here. Its sad to see passcode redeem still missing from that list, but my bet would be that Apple counted passcodes as "in app-purchases", thus was trying to force Niantic to abide by their 30% cut or remove the feature. (If you didn't know, all in app purchases on iTunes require a cut to go back to Apple). Niantic just added passcodes back to the Intel Map to get around this.

Unfortunately, that wasn't the only thing added to the handshake list. We also saw this change:

  • enableRootLockOut

At first glance, the term root naturally belongs with Android devices while the term jailbreaking belongs with Apple devices. So this change immediately scared myself being an Android device rooter. However, upon further investigation it seemed to be more pointed towards the iOS crowd of scanners. These following boolean values below are part of the DeviceInfo clause that is sent when you play Ingress.

To name what is already sent on that DeviceInfo list includes (board, bootloader, brand, device, deviceId, display, fingerprint, hardware, manufacturer, model, product, rooted, tags, and type). Most of these values can be found in your build.prop. I am unsure how iOS works with these values as this list has both Apple only and Android only values.

  • canLaunchCydia
  • hasSubstrateLib

  • <string name="JAILBROKEN_ERROR">OS integrity check failed.</string>
  • <string name="JAILBROKEN_RESULT">Ingress will not operate correctly.</string>

For those who don't know, Cydia is an alternative app store where everything not approved for the Apple app store ends up. Unfortunately, its name is more popularly known for housing illegal and cracked content when its additional strengths includes software packages to tweak the theme/look of an iOS device. We can summarise with the point being a stock iPhone does not have this application by default. Some crafty hands are required to install and run Cydia.

Substrate on the other hand used to be solely for iOS until recently when it made its appearance in Android. Substrate without going into too much details act as an intelligent hook point framework allowing you to inject into any processes on either system. This tool has been used for gaining root on Android devices and many other things. It could also be used to abuse Ingress, which is probably why it's on this list.

Its important to note, we cannot truly assuming anything. This is simply our understanding of the information presented. We just hope this isn't a lockout of all "jailbroken" Apple devices, as locking out all "rooted" Android devices would be a bad mistake.

Missions
In APK since 1.55.0
We saw an additional amount of developing in various requests and responses. Notable mentions are below

  • CompletePassphraseObjectiveParams
    • passphraseAnswer
    • (possible decoding mission?)
  • FieldTripCardViewed
    • Integration of Field Trip? (App by Niantic)
    • getCardUrl() - In reference to FieldTripCard
  • MissionBadge
    • imageUrl
    • missionDescription
    • missionTitle

As you can see with CompletePassphraseObjectiveParams, we didn't know what the response for that Passphrase Objective would be, but now since we have the "expected" response values we know it has to contain a "passphraseAnswer" which sure sounds a lot like passcode decoding via a mission.

There was a huge amount of changes in layouts and views for Medals. However, I must reiterate that Medals are not the same as Badges. It appears Medals will be isolated to Missions and be contained within their own views and dialog boxes. Then again, we might see a tiny bit of overlap where medals and badges can co-exist. The below list shows medal and badge names which were found referenced in the same layout files.

  • profiles-badge-details-title
  • profiles-badge-details-desc
  • profiles-medal-details-desc
  • profiles-medal-details-title

Artifacts - Helios
There a bunch of new models in this apk. Usually we are graced with an extra 1 or 2 models, but this time we were given 81 new models (+1 if you count ft_waypoint.obj). There are 40 models for each of the below items

  • artifact_frozen_helios_fragment_[1-40].obj
  • artifact_helios_fragment_[1-40].obj

Each fragment from 1 to 40 is an individual artifact identified via a glyph. They will either be in frozen or regular state depending on how you encounter them in-game.

See renders of the Artifacts here thanks to Daniel Benton:

Recharge button moved

Nitty Gritty

  • Built August 11
  • Leaked August 12
  • Handshake Changes
    • [new] enableIOSPortalDiscovery
    • [new] enableIOSPushNotifications
    • [new] enableRootLockOut
    • [new] iOSPortalDiscoveryProcessIntervalMS
    • [new] logSkipRegex
    • [deprecated] minimumDogfoodBuildVersionCode

Conclusion
It seems work is evenly split among Missions and iOS changes. Though I'm very interested to hear the official release of 1.58.2. I want to see if there is an official announcement regarding these iOS changes or if its up to the community to abruptly run into them. Either way I'm excited for missions to launch and I'll be back during the next version.