読者です 読者をやめる 読者になる 読者になる

Hiroto's diary

プログラミング関連を書くかも

はいふり公式アプリの通信を解析してみたお話

この情報は4/17日現在の情報です。


今期やっている「ハイスクール・フリート」と言うアニメの公式アプリを解析してみたお話です。

www.hai-furi.com

アプリの説明はここを見てみて下さい。

www.hai-furi.com

今回は主に通信の解析です。解析したプラットフォームはiOS,Androidの両方です。

解析方法

通信解析ではお馴染みのCharlesを使いました。設定方法は自分で調べてみて下さい。

www.charlesproxy.com

通信していたホスト

公式サイト(http://www.hai-furi.com/)とアニプレックスAPIサーバー(?)(https://app.aniplex.co.jp)のみでした。

アニプレックス系のは全部これなんでしょうか?

後から分かりましたがアニプレックスAPIサーバー(?)はLaravel(もしくはLumen)で作られているみたいです。エラーページがLaravel/Lumen標準のエラーページになっているので判明しました。

アニプレックスさん、エラーページくらい作りましょうよ。

アプリの仕組み

WebViewを使ってます。なのでAndroid版も同じ挙動です。

トップ、ニュース、グッズのタブ

全て公式サイトを表示してるだけです。

はいふりカメラ

流石にカメラはネイティブです。ただフレーム選択のみWebViewでした。

https://app.aniplex.co.jp/hai-furi/camera/

はいふり手帳周り

以下表示してるページのURL

あいこどばを確認するAPI

https://app.aniplex.co.jp/hai-furi/api/answer_tokenvalue=[あいこどば]という感じでPOSTしてます。どうでもいいですがPOSTはjQueryAjaxでしています。

あいこどばが合っていると

{
  "status":"OK",
  "mode":"new",
  "character":"杵崎あかね",
  "number":1,
  "character_id":29
}

合っているけど既に使ったあいこどばの場合は

{
  "status":"OK",
  "mode":"already"
}

間違っていると

{
  "status": "OK",
  "mode": "wrong"
}

各キャラクターのひみつが開放されているかの管理方法

恐らくクッキーで管理されています。ヘッダーを覗くとdevice_idというcookieがあります。このcookieはデバイスのIDを使っているわけでは無くサーバー側でランダムに生成されて管理されているみたいです。
なのでブラウザからアクセスした場合もこのcookieが勝手につきます。

ちなみにcookieを偽造すれば他人のも覗けます。(検証済み)