Eyes, JAPAN Blog > HellBound Hackers — Application Cracking — (binary)

HellBound Hackers — Application Cracking — (binary)

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

こんにちは、佐藤傑之と申します。バイナリ初心者であり、いろいろご指摘をいただきたく思い今回はバイナリの問題を2つやります。

今回は以下のアプリケーションのパスワードを、見つけます。

Application Cracking 2

20141104221412

Application Cracking 4

20141104221422

私は今6までやっていますが比較的面白かった問題を取り上げています。

Welcome to Hellbound Hackers

以下、write up となりますのでまず解いてみたい方は読まずに楽しんで下さい。

<環境>

・OS windows7ubuntu 14.04

・CPU Intel(R) Core(TM)

・使用ソフト Sothink SWF Decompiler (win)

IDA Pro Free 5.0 (win)

ollydbg (win)

flare (linux)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

<Application Cracking 2>

20141104221412

これは、バイナリの問題なのは確かなんですけどまあデバッガでいろいろはなくollyを立ち上げて待ってたんですが・・・。

まず、初めに目がつくのはきれーなフォームですね(笑)そして、タイトルバーにFlash playerと書かれています。このウィンドウの上で右クリックをするとまあよく見るメニューが表示されてます。

20141104224451

そうです、swfファイルをexeに変換したアプリケーションです。

これがわかったらもう早いです。

手順を想像します。

①このexeファイルからswfを抽出する。

②そのswfからAction scriptにデコンパイルしてログインのコードを読むです。

①はグーグルでいろいろ調べてSothink SWF Decompilerを使うことにしました。

20141104225542

使い方はすみませんお調べください・・・・

3つのswfファイルが抽出されログインはどうやらapp2[2].swfのようです。

今度は②はlinuxのほうでswfからaction scriptを抽出します。(理由:以前、フラッシュで作成されたwebアプリケーションを解析しゲームをせずに目的のリンクに飛ぶことをflareを使ってやったのでそっちのほうが早いかなと思いました)

20141104230853

flareのインストール、使い方は割愛させていただきます。上のようにデコンパイルできました。もうログインユーザーネームがどれかわかりましたね。「reduced」です!

それを先ほどのloginに打ち込んで・・・

20141104231214

よって、これが答えになります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

<Application Cracking 4>

20141104221422

今回は、パックやアセンブラの難読化はこの難易度の流れ的にしてないだろう(笑)と信じてIDA proで開きました。(いきなり逆アセツールを使用したわけでもありません、実行ファイルをアスキーとして開いてみてみたりしたりいろいろなボタンをぽちぽちしたりして情報を集めてから行っています。)

では、行きます。

20141104232325

password.exeを逆アセンブラしました。

さて何したらいいでしょう・・・私はまず(個人的にですが使われてる関数をチェックすることがアプリケーションの理解が早くなると思ってまして)関数を確認します。

上のメニューバーのview からのGraphsからのFanction callsまたはCtl + F12で関数のチャート版を開きます。今回はこの威力を発揮できませんが、もっと複雑なプログラムだと次にどの関数を参照してるかがわかり飛んで喜べます。

20141104233218

ずらっと並んでいますが一つづつ見て感じ取るんです(すみません、雑魚なのでなんとなくしかわかりません・・・)!ただ、MsgBoxはメッセージの表示するwinAPIであることは予想できる。そして、驚いたのがvbaStrCmpってwww これパスワードと比較してるんじゃないか!? と思いこの関数を調べることにしましょー!

Names windowの中から、vbaStrCmpを見つけて移動します。

20141104234750

このラインの意味がまだ分かりませんが感覚的に関数の初期化をしている感じですかね でその関数がどこで呼ばれてるかを見てみることにします。関数名で右クリックしChart of xrefs to を見ます。

20141104235304

おお、アドレス0040BCDCで呼ばれてますね!移動します。

20141104235540

っおお!?え ”livebox”・・・pushって・・・ そしてjzの条件分枝・・・入れてしまえ!

20141105000040

よし! 答えは Atmosphere !!

自分はまだ静的解析は、なんとなくでしかできないが少しずつマイペースに学んでいきたいです。

来週は、関根くんです!! お楽しみに! じゃんけんポン! うふふふふふふ♪

2014/11/05 佐藤

Comments are closed.