FiddlerCoreを使ってC#でhttp通信を覗き見しよう

突然ですが、HTTP通信を覗くことを考えます。

あ、艦これの専ブラを作った話からの続きです、はい。

要するにHTTPプロキシを作ればいいわけで、C#にはSystem.Net.HttpListenerというHTTPサーバクラスもあったりして自前で実装することもできますが、FiddlerCoreという.NET向けHTTPプロキシライブラリがあるのでこれを使うことにしました。車輪の再発明はやめて、枯れたライブラリをありがたく使わせてもらいましょう*1

FiddlerCoreとは

FiddlerというHTTPアナライザのHTTPプロキシ部分がライブラリFiddlerCoreとして提供されています。

なので、単にHTTPセッションを中継するだけではなく、以下の機能があります。
「HTTPセッションをハンドルし、適当なタイミングでイベントを呼び、HTTPリクエスト/レスポンスを適当に調理したものを渡してくれる。」
完璧じゃないですか。

というわけで、早速使ってみましょう。

*1:自分の書いたコードが一番信用ならんかったりするよね。

続きを読む

艦これの専ブラを作った話

Java書くの疲れて艦これ始めたらしっかりハマってしまいました*1

で、しばらくぽちぽちやってたわけですが、だんだんUIに不満が。

  • 負傷した艦娘を修復所要時間順にソートできない
    • Lvとダメージ程度によって所要時間は変わるのに、ダメージ程度でしかソートできない
  • アイテム*2一覧がない
    • 未使用アイテム一覧しかないので、装備済みアイテムを探すのが面倒
  • 任意のタイミングで任務一覧を見ることが出来ない
  • ドックでの修理が終わっても何の通知もない

というわけで、なんとかするというか自前GUIを書く*3ことにしました。ブラウザゲーなので、専用ブラウザとか呼ぶようです。

こんな感じに出来ました。

ブラウザゲーなので、基本的にクライアント側ではサーバに指令を与えてサーバから降って来たデータを表示することしかしてないはず。サーバから降って来たデータを自分で料理すればいいことになるので、取り敢えずChromeデベロッパーコンソールで流れてるデータを眺めたりぐぐったりして情報収集しました。

結論:「httpプロキシ作って流れてるJSONをwatchすればいい」

要するに

  • サーバとFlashの間でやりとりされてるJSONを取得
  • JSONを処理して適当なGUIで表示

ってなわけで、以上2つについて調べたことを今後書いていきたいきます。

次回予告:「C#でhttp sniffing」→書きました:FiddlerCoreを使ってC#でhttp通信を覗き見しよう


ちなみに、公開しました(6 May 2013)。

*1:試験前に開発力がマシマシするように現実逃避力ってやばいですね。

*2:武装のことです。

*3:ちなみに、WindowsでやってるのでC#で書きました。

スマホ、始めました

色々思うことあってずっとガラケー使ってきたんですが、スマホも持つことにしました。
二台持ちとかバカっぽい気がしますが、現実問題としてスマホ使いこなせるまで時間かかりそうだったり政治的に揉めたり。

ちなみに機種はXperia Zです。アアアッやArrowsのように勝手にリブートしないから+使ってる後輩が数人居たから。

適度に参照してた:トップページ - Xperia Z SO-02E Wiki

しっかし、4sqやらtwitterの更新通知がバシバシ降ってくるとこりゃ中毒になる人も出てくるわって感じです。通知イベントドリブン生活になってしまう人がいてもおかしくないねこりゃ。

続きを読む

OCN IPv6ネットワークにマルチキャストされてる緊急地震速報を受信しちゃう

随分昔に、Weathernewsの緊急地震速報プロトコルを解析されたコードを公開されてる方を見つけて、それ改造してIRCに流すbot作ったのですが、プロトコルが変態すぎてなかなか安定しませんでした*1。今動くのかなこのコード*2

今はOCN IPv6を契約するとIPv6マルチキャストで契約してなくてもOCN緊急地震速報っぽいパケットがだだ漏れしてくる時代に。Twitter bot走らせてる人もいたり。

参考:

要するにIPv6マルチキャストを受信すればいいのね。というわけで、調べてみました。

例によって、書いてある内容は未保証です。

*1:東日本大震災の際にEEWが飛びまくった際に頑張ってデバッグして多少安定するようにはなったんですが、それでも何か変。

*2:と思って動かしてみたら動きはしたけど文字化けしたんでちょっと修正した。

続きを読む

DVCSメモメモ

DVCSってアレですよ。バージョン管理するアレです。分散バージョン管理システムですね。gitとかhgとか。

1人でやってんのに分散もクソもないんちゃうの、と最初は思ってたけど、DVCSの真の旨味は

バージョン管理システムが(事実上?)存在しない世界で自分一人だけでもバージョン管理する

ことにあるんじゃないかと思い至った今日このごろ。CVSとかSubVersionは、リポジトリサーバにリポジトリ作らないと何も出来ません。そりゃ、開発マシンにCVSやらSVNのサーバをインスコすりゃいいっちゃそうですが、gitやhgは取り敢えず手元にリポジトリを作ってちまちまバージョン管理できる。

リポジトリサーバにcommitしなきゃいけないなんて誰が決めた!俺はファイルの変更点が見たいだけなんだ!URYYYYYYYYYY

という欲求に対してgitやhgは結構幸せにしてくれる感が。WIndows GUIは所謂亀Git/Hgがありますが、GUIはhgの方が出来がいいとか何とか。まだ両者まともに使えてないのでこまいこと書けない。

それはそれとして。

githubを使うためにgit使ってるんですが、BitBucketならプライベートリポジトリ無料で作れるよ→BitBucket使うならMercurialぐらい使えないと*1、という訳でMercurial始めました。日本語リソース多いのもいいですね。

*1:「や、BitBucketでもgit使えるよ」というツッコミをしっかり喰らいました。何事もお勉強ですよ。経験値を日頃から増やすの大事だから、適当に理由見つけたら始めたい。

気象庁の防災情報XMLを受信するぞ

みんな大好き気象庁が発表する防災情報*1XML化した上にプッシュ配信してくれるらしいので、受信することにしました。

注:試行配信の段階での情報なので、今後気象庁の心変わりで配信止めたり、本配信の際に使用が変わったりするかもしれませんよ、と。もちろん、内容の正確さとか一切未保証です。

*1:天気予報やら気象情報やら

続きを読む