部活
HellBound Hackers — Application Cracking — (binary)
beko
こんにちは、佐藤傑之と申します。バイナリ初心者であり、いろいろご指摘をいただきたく思い今回はバイナリの問題を2つやります。
今回は以下のアプリケーションのパスワードを、見つけます。
Application Cracking 2
Application Cracking 4
私は今6までやっていますが比較的面白かった問題を取り上げています。
以下、write up となりますのでまず解いてみたい方は読まずに楽しんで下さい。
<環境>
・CPU Intel(R) Core(TM)
・使用ソフト Sothink SWF Decompiler (win)
IDA Pro Free 5.0 (win)
ollydbg (win)
flare (linux)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<Application Cracking 2>
これは、バイナリの問題なのは確かなんですけどまあデバッガでいろいろはなくollyを立ち上げて待ってたんですが・・・。
まず、初めに目がつくのはきれーなフォームですね(笑)そして、タイトルバーにFlash playerと書かれています。このウィンドウの上で右クリックをするとまあよく見るメニューが表示されてます。
そうです、swfファイルをexeに変換したアプリケーションです。
これがわかったらもう早いです。
手順を想像します。
①このexeファイルからswfを抽出する。
②そのswfからAction scriptにデコンパイルしてログインのコードを読むです。
①はグーグルでいろいろ調べてSothink SWF Decompilerを使うことにしました。
使い方はすみませんお調べください・・・・
3つのswfファイルが抽出されログインはどうやらapp2[2].swfのようです。
今度は②はlinuxのほうでswfからaction scriptを抽出します。(理由:以前、フラッシュで作成されたwebアプリケーションを解析しゲームをせずに目的のリンクに飛ぶことをflareを使ってやったのでそっちのほうが早いかなと思いました)
flareのインストール、使い方は割愛させていただきます。上のようにデコンパイルできました。もうログインユーザーネームがどれかわかりましたね。「reduced」です!
それを先ほどのloginに打ち込んで・・・
よって、これが答えになります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<Application Cracking 4>
今回は、パックやアセンブラの難読化はこの難易度の流れ的にしてないだろう(笑)と信じてIDA proで開きました。(いきなり逆アセツールを使用したわけでもありません、実行ファイルをアスキーとして開いてみてみたりしたりいろいろなボタンをぽちぽちしたりして情報を集めてから行っています。)
では、行きます。
password.exeを逆アセンブラしました。
さて何したらいいでしょう・・・私はまず(個人的にですが使われてる関数をチェックすることがアプリケーションの理解が早くなると思ってまして)関数を確認します。
上のメニューバーのview からのGraphsからのFanction callsまたはCtl + F12で関数のチャート版を開きます。今回はこの威力を発揮できませんが、もっと複雑なプログラムだと次にどの関数を参照してるかがわかり飛んで喜べます。
ずらっと並んでいますが一つづつ見て感じ取るんです(すみません、雑魚なのでなんとなくしかわかりません・・・)!ただ、MsgBoxはメッセージの表示するwinAPIであることは予想できる。そして、驚いたのがvbaStrCmpってwww これパスワードと比較してるんじゃないか!? と思いこの関数を調べることにしましょー!
Names windowの中から、vbaStrCmpを見つけて移動します。
このラインの意味がまだ分かりませんが感覚的に関数の初期化をしている感じですかね でその関数がどこで呼ばれてるかを見てみることにします。関数名で右クリックしChart of xrefs to を見ます。
おお、アドレス0040BCDCで呼ばれてますね!移動します。
っおお!?え ”livebox”・・・pushって・・・ そしてjzの条件分枝・・・入れてしまえ!
よし! 答えは Atmosphere !!
自分はまだ静的解析は、なんとなくでしかできないが少しずつマイペースに学んでいきたいです。
来週は、関根くんです!! お楽しみに! じゃんけんポン! うふふふふふふ♪
2014/11/05 佐藤