目次

Software Reverse Engineeringとは?

Wikipediaさんに聞いてみた

リバースエンジニアリング - Wikipedia

リバースエンジニアリング(Reverse engineering)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアを解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図、ソースコードなどを調査する事である。

つまりソースコードが手に入らない状況でソフトウエアの振る舞いを解析すること。

何が楽しいの?

  • Crackmeといわれる解析の練習用のプログラムを解析して腕を競う。
  • こいつバグだらけだよwwwwwwプギャーwwwwwwと悦にいる。
  • なにこのソフトwww文字列単純比較wwwと(ry

Crackme

  • 募集中

便利なツール

Filemonファイルアクセス監視ツール
Regmonレジストリアクセス監視ツール
PEiDPEヘッダーを見てパックされてるかとかをチェック!
PEditorPEヘッダーを編集するツール
Ollydbg高性能で使いやすいデバッガ。
Fire Flowerパッチを当てるツール。この形式が最もよく使われてるかな。
DeDeDelphi専用デバッガ
QuickBeバイナリエディタ。FireFlower形式のパッチを当てる機能もある。
Reflector.NET製アプリをデコンパイル
IDA Pro Freeware Version静的解析に用いる逆アセンブラ。
JadJavaのクラスファイルからソースコードを復元する逆コンパイラ。一時配布元が消えているのでInternet Archiveを漁るかPleiadesの同梱のものを用いる必要がある。
スペシャルねこまんま57号プロセスメモリエディタ兼デバッガ
うさみみハリケーン同じくプロセスメモリエディタ兼デバッガ

チュートリアル

リバースエンジニアリングのチュートリアル。

Ollydbg導入

解析では主にOllydbgを用いる。 ここではそれを導入する手順を説明する。

  1. http://www.ollydbg.de/からOllydbgのバージョン1.10をダウンロードする。
  2. http://hp.vector.co.jp/authors/VA028184/から日本語化パッチをダウンロードし、手順に沿って日本語化する。

これだけだ。

参考書

リンク