2015の5日目の記事です。CTOのkamocです。前回の記事(ルンバがうちに、やってきた。)では最新モデルのルンバ980をハックしていく方向性について書きました。API間の通信をハックして行きます。運用してみた最初に今回は図の★の部分。API間の通信をハックして行きます。同命令を叩いてルンバに掃除させます。通信を解析してみましょう。いうツールを使用しました。パケットキャプチャのやり方はこちらを参考にしました。プロキシ設定を済ませた状態で、iRobotアプリを立ち上げるとこんな感じになります。アプリの通信を表示した様子いろいろ通信してますね〜。この後詳しく見ていきます。アプリのクラッシュレポートや利用状況を記録しているやつですね。いつもお世話になっています。ルンバとの直接通信ですね。ルンバのIPアドレスは前回の記事で書いたとおり、iRobotアプリから確認することができます。通信内容覗いてみました。レスポンスのJSONの一例はこちら。Informationが表示されますね。利用規約および個人情報保護方針を選択した時に表示されるページです。このドメインとの通信では、アプリ内のWebView等で表示するコンテンツの情報を取得しているようですね。通信内容というわけで、こちらのドメインがルンバのAPIである可能性が濃厚になってきました。通信を覗いてみましょう。同ドメインについては以下のURLに対してのみ通信を行っています。https://irobot.axeda.com/services/v1/rest/Scripto/execute/AspenApiRequest一番上の通信のリクエストパラメータを見てみます。パスワードは値をマスクしています。パスワードは値をマスクしています。APIのURLは共通で、”method”パラメータの値で挙動を定義しているようですね。レスポンスはこちらです。値をマスクしています。値をマスクしています。おぉ!いろいろと取れましたねぇ。このAPIを定期的に呼び出せば、ルンバの現在の状態を知ることができそうですね。次に、掃除開始命令を探してみましょう。アプリから掃除開始命令を出します。