目次#
Software Reverse Engineeringとは?#
Wikipediaさんに聞いてみた#
[http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0 リバースエンジニアリング - Wikipedia]
リバースエンジニアリング(Reverse engineering)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアを解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図、ソースコードなどを調査する事である。
つまりソースコードが手に入らない状況でソフトウエアの振る舞いを解析すること。
何が楽しいの?#
- Crackmeといわれる解析の練習用のプログラムを解析して腕を競う。
- こいつバグだらけだよwwwwwwプギャーwwwwwwと悦にいる。
- なにこのソフトwww文字列単純比較wwwと(ry
Crackme#
- 募集中
便利なツール#
| Filemon | ファイルアクセス監視ツール |
|---|---|
| Regmon | レジストリアクセス監視ツール |
| PEiD | PEヘッダーを見てパックされてるかとかをチェック! |
| PEditor | PEヘッダーを編集するツール |
| Ollydbg | 高性能で使いやすいデバッガ。 |
| Fire Flower | パッチを当てるツール。この形式が最もよく使われてるかな。 |
| DeDe | Delphi専用デバッガ |
| QuickBe | バイナリエディタ。FireFlower形式のパッチを当てる機能もある。 |
| Reflector | .NET製アプリをデコンパイル |
| [http://www.hex-rays.com/idapro/idadownfreeware.htm IDA Pro Freeware Version] | 静的解析に用いる逆アセンブラ。 |
| Jad | Javaのクラスファイルからソースコードを復元する逆コンパイラ。一時配布元が消えているのでInternet Archiveを漁るかPleiadesの同梱のものを用いる必要がある。 |
| スペシャルねこまんま57号 | プロセスメモリエディタ兼デバッガ |
| うさみみハリケーン | 同じくプロセスメモリエディタ兼デバッガ |
チュートリアル#
リバースエンジニアリングのチュートリアル。
Ollydbg導入#
解析では主にOllydbgを用いる。 ここではそれを導入する手順を説明する。
- http://www.ollydbg.de/からOllydbgのバージョン1.10をダウンロードする。
- http://hp.vector.co.jp/authors/VA028184/から日本語化パッチをダウンロードし、手順に沿って日本語化する。
これだけだ。
参考書#
- [http://www.amazon.co.jp/dp/4798017051/ デバッガによるx86プログラム解析入門—コンピュータとプログラムの仕組みを覗く]
リンク#
[http://crackmes.de/ Crackmes.de]
[http://ruffnex.oc.to/kenji/ KENJI’S HOMEPAGE]
[http://wizardbible.org/ Wizard Bible]
[http://itpro.nikkeibp.co.jp/article/Watcher/20061004/249805/ セキュリティとリバース・エンジニアリング:鵜飼裕司のSecurity from KAGURAZAKA:ITpro]
- フォーラム閲覧 - 初心者向け講座(閲覧のみ) が ゲストにも解放されたようです。
[http://itpro.nikkeibp.co.jp/article/COLUMN/20070927/283156/?ST=security ITpro ホワイトハッカー道場]