Hopper+qira作りたい①

【はじめに】
我らがHopperにはgdbと連携させるプラグインがある。そして、私のHopperではなぜか使えない…。しかし、使いたい。ん?本当に使いたいのか、私は。もっとミーハー精神を出してもいいんではないだろうか。ということで、F**KIN' ブルジュアら(私が嫉妬してるだけ)が使うIDA Proと組み込ませて使うqira(当初のイメージは gdb+QEMUでエミュレーションを実現してるGeohotが作ったツール)を Hopperにも組み込ませたい。

【動機】
私の大好きなゲームであるpwnを効率よく遊びたいというものもあるのだが、
私の高専の3年生後期に「自由研究」というものがあり、QNX6.5(車載OS)のリバースエンジニアリングをしようと考えた。なぜ、リバースエンジニアリングの必要があるかというと、QNXは全部Closedなのだ。つまり、OSのカーネル部とかを見るために使わないといけない。あと、メモリ部はVoltility Frameworkで解析していきたいと考えている。
だでぃ子さんにVolatilityFrameworkを使ったツール教えてもらったのでこれも使えたら使いたいと考えている。


【懸念】
HopperもIDAPro同様 IDAPythonライクな物があるのだろうか?
実は、HopperScriptというものがある。しかし、 IDAProはバイブルが出てるぐらい汎用性?が認められているが、HopperScriptは公式でせえ全く興味なさそうな。しかし、「可能性は無限大」的なことを公式が書いていたので、可能性を信じてやろうと思う。

【協力者】
私は、binary/pwn強強の@segfoさんを誘った。理由としては、わたあめさんが「@segfoさんはbin/pwn最強」という事実と、「Hopper使いでありPythonistaだ」ということを聞いたからだ。

【環境】
BackTrack5を愛用しているのだが、qiraは極めて新しいツールなので、glibとかその辺りが対応していないらしい。パッケージもダメらしい。
そして、急遽 Kali Linux 1.0.9を入れた。

【インストール】
qira - QEMU Interactive Runtime Analyser - Google Project Hosting
を参照したとおりである。

【調べてわかったこと】
詳しくはまだ調べていないのであまり言及できない。
pin,cda,QEMUなどをコア?として、それらのプラグインC言語で書いている。
Web及び、アプリケーションとして動かすために Pythonを使っている。
私と@segfoさんが重要視したフォルダは、middlewareとqemu_modsだが、qemu_modsは実装するときにあまり関係はなさそうだ。

middlewareの中で一番重要そうなプログラムは, qira_program.pyだった。
実際、Cから取ってきたqemuなどをWebアプリで実現させるためにレジスタとかホゲな感じだった。qira_analysis.pyも重要そうだが、いまいちなにをやってるのかわからない。

【実現性】
調べた感じでは、実現性は大いにある。
私「@segfo よし!とりあえず、qira使う&qiraのソース読むで仕様理解して、
HopperScriptの勉強したら行けそうですね!!」
というのが私の最後の感想だ。

【感想】
確かに出来そうなのだが、geohotが作ったものなので、ドキュメントライクなものが落ちていない。つまり、Hopperにプラグインするのに一苦労かかりそうだというのが感想だ。