先日のCODEGATE2012 予選。 一応、少しでも取りかかった問題については、いろいろな人の書かれたWriteupを参考に 「自分で理由をつけながら答えを導出できる」レベルまで落としこんでいたのですが、 Binary200でかなりつまずいたので、メモがてらWriteup。 使用したツール OllyDbg 1.10 OllyDbg 2.01 IDA 5.0 PEiD 0.95 ImpREC 1.7c 問題 Find a printable string that the program would print ultimately. Download ファイルの解析 まず、ファイルの種類を調べる。 [dolphin@siro BINARY200]$ file A1A81BBD9D2FD44FAE8013E753830464 A1A81BBD9D2FD44FAE8013E753830464
http://d.hatena.ne.jp/rootkit/20080818/1219042285 ベスト50位の中から、最低限これだけ覚えておけばきっと解析できる命令をまとめてみた。 関数呼び出しやEIP変更関連の命令 push スタックへ値を格納 pop スタックから値を取り出す call スタックに次の実行命令のアドレスを入れてジャンプ leave retの前に置かれるもの("mov esp, ebp"+"pop ebp"と同じ) ret スタックのトップにある値を取り出してそこへジャンプ jmp 指定アドレスへジャンプ 値の操作系の命令 mov レジスタ値やメモリの値を転送 movzx 渡したレジスタ値やメモリ値のサイズが異っても転送可能なmov lea 説明しにくい。まぁ[]の中の計算結果がレジスタへ入ると覚えておけばおk xchg 2つのオペランドを交換する(xchg eax,
はじめに 最初に断っておきますが、私はKrackerではありませんし、またリバースエンジニアリングについてさほど詳しいわけでもありません。そんな人が「リバースエンジニアリング」などと銘打って文章を書くこと自体がそもそもおかしいですが、今回は、私がリバースエンジニアリングについていろいろと調べた結果をテキストとしてまとめてみようということでこの文章を書き上げました。よって、この文章は私がここ1ヶ月くらいで学んだ過程を書き綴っています。ただ、まとめたといっても、デバッガの使い方といった初歩の部分から書いているわけではないので、少なくともアセンブリ言語を理解していることが前提となります。また場合によっては、WindowsやDLLの仕組み、そして暗号アルゴリズムに関してもある程度の知識が必要かもしれません。 実験を行った私の環境はWinXP、コンパイラはVC++.NET、デバッガはOllyDbgで
久しぶりのCTFでした!超楽しかった!! Bin100 Net100、200、300、400 Misc100、300 のWriteupを残しておきます。 Binary 100 やったー!Windowsバイナリだー!( 実行すると、何やら強制終了する。 このとき、"sxe42.tmp"というファイルが出来てる。 これも実行ファイル。 .NET製なので、Reflector等で逆コンパイルしてやると、コードが出てきます。 自分はVB.NET派なので、VB.NETのコードで見てやると、こんな感じ。 長いので抜粋。 Friend Class Program Private Shared Sub Main(ByVal args As String()) '... synthesizer.Speak("What is greater than god, more evil than the devil?
Find a printable string that the program would print ultimately. Down (pw: infected) Summary: unpack, XTEA decrypt The program is packed PE x86 executable file (dll). The packer was easy, and it took few minute to get a unpacked file (PE tools + ImpRec). The program consists of a lot of functions, but the most of them are not interesting for us. The most interesting part of the program is located
Binary Hacks は GNU/Linux & x86 メインですが、 それ以外だとどんな感じだろうってことを書くところです。 私が個人的にいじってるものですが、 他の人にいじってもらっても問題ありません、 というか知らないことだらけなのでありがたいです。 1. イントロダクション Binary Hack入門 Binary Hack用語の基礎知識 file でファイルの種類をチェックする od でバイナリファイルをダンプする 2. オブジェクトファイルHack ELF 入門 静的ライブラリと共有ライブラリ ldd で共有ライブラリの依存関係をチェックする readelf で ELF ファイルの情報を表示する objdump でオブジェクトファイルをダンプする objdump でオブジェクトファイルを逆アセンブルする objcopy で実行ファイルにデータを埋め込む nm でオブジェク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く