RaspberryPi Wifi APを使った無線ルーターの設定を作ったので、何かできないかなと思い、何となくiPhoneにインストールしたアプリのリクエスト情報をtcpdumpで追っかけてみた。
流れ
- iPhoneを自前APに繋ぐ
- sshでrasberrypiにログイン
- 下記のコマンドを叩く
以上、書くまでもないか
tcpdumpを使って80を監視
bash
$ sudo tcpdump -vvv -i wlan0 -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
...
...
...
データが流れる...
...
...
...
...
SmartNewsのPostを発見したので、なのでSmartNewsのapiをみてみた。
curlでデータをPOSTしてみる
bash
# dataにポストのバイナリデータを保存して、-dでポストする
# agentを偽装してあげる必要があるみたい
$ curl -vvv --user-agent 'SmartNews' --data-binary '@data' http://www.smartne.... -o smartnews.gz
# 解凍する
$ ls -lh smartnews.gz
-rw-r--r-- 1 watashi staff 7.8K 2 7 03:27 smartnews.gz
$ gunzip smartnews.gz
$ ls -lh smartnews
-rw-r--r-- 1 watashi staff 478K 2 7 03:19 smartnews
postデータはk=vで、レスポンスデータはjsonだった。
感想
jsonでやり取りしていることろがやはり多い。
データー構造の作りやヘッダーの使い方など色々と参考になるので、時々調べてみることにしよう。
どのタイミングでどんなデータとか投げているかもわかる。
今度はinstagramを見てみようかな。
やり取りを見ると、アプリやapiの作りの勉強になるな。
何となくやってみたけど、案外面白い。
楽しいおもちゃができた!
あ、それと、暗号化って大事よねと思った。
気をつけねば。