Top / Docs / Software Reverse Engineering

目次#

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レジストリアクセス監視ツール
PEiDPEヘッダーを見てパックされてるかとかをチェック!
PEditorPEヘッダーを編集するツール
Ollydbg高性能で使いやすいデバッガ。
Fire Flowerパッチを当てるツール。この形式が最もよく使われてるかな。
DeDeDelphi専用デバッガ
QuickBeバイナリエディタ。FireFlower形式のパッチを当てる機能もある。
Reflector.NET製アプリをデコンパイル
[http://www.hex-rays.com/idapro/idadownfreeware.htm 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/から日本語化パッチをダウンロードし、手順に沿って日本語化する。

これだけだ。

参考書#

  • [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]

  • RCE Japan

  • [http://itpro.nikkeibp.co.jp/article/COLUMN/20070927/283156/?ST=security ITpro ホワイトハッカー道場]

📝 このページに誤りを見つけたら…  GitHubで報告(エンジニア向け)  ・  フォームで報告