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

Twitterに書ききれないこと

イベントや技術的なことを記したい・・・

Bokken 1.8使ってみた

f:id:pinksawtooth:20150804160903p:plain

IDA以外のGUIディスアセンブラは使ったことなかった(存在を知らなかった)のですが,なにやらBokkenというのがあるらしいとのことなので使ってみた。64bitに対応しているとのこと。

インストール

公式サイトのDownloadページを見ると ubuntudebianリポジトリにあるのは壊れている?らしいのでソースから入れてのことだが、依存パッケージがいろいろとあり、めんどうなのでほかの方法を探した。

CentOSFedoraにはCERT Forensics Tools x86_64というリポジトリがあり、必要なパッケージが手に入る.

cd /tmp
wget http://dl.fedoraproject.org/pub/epel/7/`uname -m`/e/epel-release-7-5.noarch.rpm
rpm -Uvh epel-release-7-5.noarch.rpm
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.`uname -m`.rpm
rpm -Uhv rpmforge-release-0.5.3-1.el7.rf.`uname -m`.rpm
yum update epel-release rpmforge-release

/etc/yum.repos.d/epel.repoをに追記

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=protobuf-c ←追記

リポジトリrpmをインストール

wget https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
rpm -ivh cert-forensics-tools-release-el7.rpm

必要なパッケージをインストール

yum install radare-2.0.9.9-1.el7 
yum install python-radare-2.0.9.9-1.el7
yum install graphviz is needed by bokken-1.8-1.el7.x86_64
yum install pygtksourceview is needed by bokken-1.8-1.el7.x86_64
yum install python-tidy is needed by bokken-1.8-1.el7.x86_64

・・・動かない・・・まだ足りないっぽい 特定するのめんどくさかったので全部入れる・・・(また今度ちゃんとみよう)

yum install CERT-Forensics-Tools

使ってみた

PE/ELF/mach0に対応している。PE/ELF形式で64bitのファイルも開けることを確認。 bokkenで起動する。

左右にタブがありウィンドウを切り替えられる。

f:id:pinksawtooth:20150804170747p:plain

  • Code

アセンブル結果を表示。IDAと違い.text領域だけしか見れない。(何か操作がいるのかも?) IDAに慣れてるのもあるけれどちょっと見にくいと感じてしまう・・・

  • Flowgraph

基本ブロックに分割したフローグラフを表示。縦のタブのFunctionと連動している・・・Codeと連動してないのでちょっと使いずらい。 コールグラフにも切り替えられる。

f:id:pinksawtooth:20150804173342p:plain

  • Hexdump

hexdumpの結果を表示。選択したところを逆アセンブルして表示してくれるところがおもしろい。 f:id:pinksawtooth:20150804173913p:plain

  • String

文字列の表示。text領域の文字であればジャンプしてくれる。

  • Sections

セクション情報

  • File info

ファイル情報

  • Interactive view

よくわかっていない・・・がradareのコマンドを実行したり、pythonを使ってBokken や radare2のオブジェクトをエクスポートできるらしい。このへんはradare2の使い方をちゃんと調べないと使えない。これを読まないと・・・

f:id:pinksawtooth:20150804192513p:plain

*Function

関数に該当するコードが表示される。

*imports

インポートしているDLL・APIの表示。関数名クリックしてGo to押しても飛ばないのなんでだろう?

*Symbols

シンボル情報の表示。

*Relocs

APIの再配置後の仮想アドレス

まとめ

やっぱりIDAさんすげー!

でも64bitに対応しているフリーのツールということでBokkenも有用だと思います。 というかまだまだ評価できるレベルで使いこなせてないので・・・

radare2自体使ったことないので、調べたほうがよさそう。

インストール方法は適当なのですがご容赦を・・・

何かわかればまた追記したいと思います。