リバースエンジニアリングバイブル
リバース エンジニアリング バイブル
コード再創造の美学
- 著者:
- 姜秉卓 / 金凡峻(ガン, ビョンタク / キム, ボムジュン)
- 出版社:
- インプレスジャパン
- 出版日:
- 2013年09月
- 一覧:
- 2013 年に出た技術書
- ISBN:
- 9784844334798
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
リバースエンジニアリング (Reverse Engineering) とは、完成された製品から、製造方法・動作原理・設計図・ソースコード等を調査することだ。本書は、ソフトウェアのリバースエンジニアリングについて詳細に解説する。
技書の森解説
ソースコードが手元に無いプログラムの中身を、実行ファイルから読み解くための解説書が『リバースエンジニアリングバイブル』 (姜 秉卓 著、金 凡峻 訳、金 輝剛 監修、インプレスジャパン発行、インプレスコミュニケーションズ発売、2013 年 9 月刊) です。副題は「コード再創造の美学」で、版元は本書を「リバーシング」から「アンチリバーシング」までを徹底解説する本と案内し、扱う手法を C / C++ に対応したものと説明しています。版元の紹介文は、リバースエンジニアリングをセキュリティ分野や悪性コードの分析に限られたものではなく、ソースコードが得られないモジュールの動作を理解したり、自分が書いたコードの問題を解決したり最適化したりするためにも必要な作業として位置づけています。
全 5 部 16 章の構成、アセンブラから難読化まで
目次は全 5 部 16 章です。第 1 部「リバースエンジニアリングの基本」は 01 章「リバースエンジニアリングのためだけのアセンブラ」、02 章「C 言語の文法と逆アセンブル」、03 章「C++ のクラスとリバースエンジニアリング」、04 章「DLL の分析」の 4 章です。第 2 部「リバースエンジニアリング中級」は 05 章「PE ヘッダー」、06 章「よく使われるパターン」、07 章「MFC リバーシング」、第 3 部「演算ルーチンリバーシング」は 08 章「シリアルキー抽出法」と 09 章「コードフェイキング」で構成されます。第 4 部「アンチリバースエンジニアリング」は 10 章「教科書的なアンチデバッグ」、11 章「ハイレベルなアンチデバッグ」、12 章「パッカーが使用する技術」、13 章「回避方法」、第 5 部「一段階高いレベルのバイナリ作り」は 14 章「コードフック」、15 章「コードパッチング」、16 章「難読化とダミーコード」です。版元の公式ページでは、本書で使うサンプルソースコードとツールが配布されています (2026 年 10 月時点)。
逆アセンブルで読むのはコンパイラーが残した形
リバースエンジニアリングで読む対象は、人の書いたソースコードではなく、コンパイラー が変換した後の機械語です。変数名やコメントは消え、関数の呼び出しはスタックとレジスターの操作に、条件分岐は比較とジャンプ命令の組み合わせに置き換わります。ある言語の構文がどのような命令の並びになって出てくるのかを、01 章から 03 章がアセンブラ、C 言語、C++ の順に扱います。C++ のようにクラスや仮想関数を持つ言語では、オブジェクトの配置や仮想関数の呼び出しの仕組みがさらに一段の変換として加わります。Windows の実行ファイルの場合は、これに加えて PE 形式と呼ばれるファイルの構造が、どこにコードがあり、どの DLL のどの関数を使うのかを決めています。
解析を妨げる側の技術、第 4 部と第 5 部
第 4 部のアンチデバッグとパッカー、第 5 部の難読化は、解析を妨げる側の技術です。これらは、ソフトウェアの不正な改変やコピーを防ぐ目的で使われる一方、悪性のプログラムが解析を逃れるためにも使われます。版元の紹介文は、本書のリバースエンジニアリングを、ソースコードが得られないモジュールの動作の理解や、自分のコードの問題の解決と最適化のための作業と位置づけています。
本書は 2013 年 9 月の刊行で、目次に並ぶ PE ヘッダー、DLL、MFC はいずれも Windows のプログラムを形づくる要素です。低レイヤーの技術書の分野ごとの入口は 低レイヤーを学ぶ技術書の選び方 が整理しています。実行ファイルを読む側と、読ませないようにする側の両方の技術を、アセンブラと逆アセンブルの基本から難読化とダミーコードまで全 5 部 16 章に収めた一冊です。
言及した記事 (2 件)
この本に興味がある方におすすめ
関連する本
関連記事
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。
LLM / 生成 AI 本ガイド - 仕組み / 実装 / エージェント開発の 3 層で選ぶ (2026 年 8 月時点)
LLM (大規模言語モデル) / 生成 AI を学ぶ技術書の選び方を 3 層 (読み物で仕組みを掴む → 中身を実装で理解する → RAG / AI エージェント開発) で整理。2026 年 8 月時点の定番書と、変化の速い分野で本を選ぶときの注意点を解説します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。