
リバースエンジニアリング――Pythonによるバイナリ解析技法
- Justin Seitz 著、安藤 慶一 訳
- 2010年05月 発行
- 272ページ
- 定価3,360円
- ISBN978-4-87311-448-4
- 原書: Gray Hat Python
Pythonはリバースエンジニアやソフトウェアテスターといったセキュリティのプロにも人気の言語です。本書では、ハッキングツールやテクニックの概念を解説したうえで、Pythonを使ったバイナリ解析技法について詳しく解説します。読者は、独自デバッガの構築、バグを発見するためのツールの作り方、オープンソースのライブラリを活用した処理の自動化、商用ソフトとオープンソースのセキュリティツールを連動させる方法などについて学ぶことができるでしょう。日本語版では、本書をより深く理解するための補足情報とリバーシングに役立つツールについての解説を加筆しました。/ART/OF/REVERSINGシリーズ第1弾。
関連書籍
Binary HacksDebug Hacks
Hacking:美しき策謀
Pythonクイックリファレンス
Python クックブック 第2版
Pythonチュートリアル 第2版
実践 デバッグ技法
実践 ネットワークセキュリティ監査
実践 パケット解析
デコンパイリングJava
初めてのPython 第3版
序文
まえがき
1章 開発環境のセットアップ
1.1 本書で前提とするオペレーティングシステム
1.2 Python 2.5のインストール
1.2.1 PythonをWindowsにインストールする
1.2.2 PythonをLinuxにインストールする
1.3 EclipseとPyDevのセットアップ
1.3.1 ハッカーの最強の友:ctypes
1.3.2 動的リンクライブラリを使う
1.3.3 Cのデータ型を使う
1.3.4 パラメータを参照で渡す
1.3.5 構造体と共用体を定義する
2章 デバッガの基本原理
2.1 汎用レジスタ
2.2 スタック
2.3 デバッグイベント
2.4 ブレークポイント
2.4.1 ソフトウェアブレークポイント
2.4.2 ハードウェアブレークポイント
2.4.3 メモリブレークポイント
3章 Windowsデバッガの構築
3.1 デバッギーよ、汝はいずこ?
3.2 レジスタ状態の捕捉
3.2.1 スレッドを列挙する
3.2.2 デバッガを拡張する
3.3 デバッグイベントハンドラの実装
3.4 ブレークポイントは全能
3.4.1 ソフトウェアブレークポイント
3.4.2 ハードウェアブレークポイント
3.4.3 メモリブレークポイント
3.5 まとめ
4章 PyDbg―ピュアPythonのWindowsデバッガ
4.1 ブレークポイントハンドラの拡張
4.2 アクセス違反ハンドラ
4.3 プロセススナップショット
4.3.1 プロセススナップショットを取得する
4.3.2 PyDbgの各種機能を組み合わせる
5章 Immunity Debugger―両方の世界をまたにかけ
5.1 Immunity Debuggerのインストール
5.2 Immunity Debuggerの基礎
5.2.1 PyCommand
5.2.2 PyHook
5.3 エクスプロイトの開発
5.3.1 エクスプロイトに優しい命令を見つける
5.3.2 不都合な文字を調べる
5.3.3 WindowsのDEPを回避する
5.4 マルウェアのアンチデバッグルーチンを回避する
5.4.1 IsDebuggerPresent関数
5.4.2 プロセスの順次チェックを回避する
6章 フック
6.1 PyDbgによるソフトフック
6.2 Immunity Debuggerによるハードフック
7章 DLLインジェクションとコードインジェクション
7.1 リモートスレッド生成
7.1.1 DLLインジェクション
7.1.2 コードインジェクション
7.2 バックドアの作成
7.2.1 ファイルを隠す
7.2.2 バックドアを作る
7.2.3 py2exeでコンパイルする
8章 ファジング
8.1 バグクラス
8.1.1 バッファオーバフロー
8.1.2 整数オーバフロー
8.1.3 書式指定文字列攻撃
8.2 ファイルファザー
8.3 今後の課題
8.3.1 コードカバレッジ
8.3.2 自動静的解析
9章 Sulley
9.1 Sulleyのインストール
9.2 Sulleyプリミティブ
9.2.1 文字列
9.2.2 デリミタ
9.2.3 静的データとランダムデータ
9.2.4 バイナリデータ
9.2.5 整数
9.2.6 ブロックとグループ
9.3 SulleyでWarFTPDを破壊する
9.3.1 FTPの基礎
9.3.2 FTPプロトコルスケルトンを作成する
9.3.3 Sulleyセッション
9.3.4 ネットワークとプロセスを監視する
9.3.5 ファジングとSulley Webインタフェース
10章 Windowsドライバのファジング
10.1 ドライバとの通信
10.2 Immunity Debuggerによるドライバファジング
10.3 driverlib―ドライバ向け静的解析ツール
10.3.1 デバイス名を検出する
10.3.2 IOCTLディスパッチルーチンを見つける
10.3.3 IOCTLコードを調べる
10.4 ドライバファザーの作成
11章 IDAPython―IDA Proでのスクリプティング
11.1 IDAPythonのインストール
11.2 IDAPythonの関数
11.2.1 ユーティリティ関数
11.2.2 セグメント
11.2.3 関数
11.2.4 相互参照
11.2.5 デバッガフック
11.3 サンプルスクリプト
11.3.1 危険な関数への相互参照を検出する
11.3.2 関数カバレッジ
11.3.3 スタックサイズを求める
12章 PyEmu―スクリプティング対応のエミュレータ
12.1 PyEmuのインストール
12.2 PyEmuの概要
12.2.1 PyCPU
12.2.2 PyMemory
12.2.3 PyEmu
12.2.4 実行
12.2.5 メモリとレジスタの値へのアクセス
12.2.6 ハンドラ
12.3 IDAPyEmu
12.3.1 関数エミュレーション
12.4 PEPyEmu
12.4.1 実行ファイルパッカーについて
12.4.2 UPXパッカー
12.4.3 PEPyEmuによるアンパック
付録A 補足と追加情報(中津留 勇●株式会社ラック)
A.1 補足
A.1.1 Windowsの基礎知識
A.1.2 Subversionによるソースファイルの取得
A.1.3 より新しいPythonを使用する
A.2 その他のPython環境
A.2.1 setuptools
A.2.2 IPython
A.3 リバースエンジニアリングに役立つその他のPythonツール
A.3.1 pefile
A.3.2 PDFiD、pdf-parser
索引
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すで修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
■P.5 12行目- 【誤】http://pydev.sourceforge.net/updates/
- 【正】http://pydev.org/updates/
- 【誤】Size=287 Encoder=None http://metasploit.com */
- 【正】# Size=287 Encoder=None http://metasploit.com */
- 【誤】我々がバックドアである
- 【正】我らがバックドアである
- 【誤】右クリックしえ
- 【正】右クリックし
Catch O'Reilly
Feedback
皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]


![[View Cart]](/images/button_cart_off.gif)
ORJ on Twitter
Bookclub News
Theme![[com]](../../images/usa.gif)
![[de]](../../images/germany2.gif)
![[cn]](../../images/china2.gif)
![[tw]](../../images/taiwan2.gif)