リバースエンジニアリング
Pythonによるバイナリ解析技法
- Justin Seitz 著、安藤 慶一 訳
- 2010年05月 発行
- 272ページ
- ISBN978-4-87311-448-4
- フォーマット Print PDF
- 原書: Gray Hat Python
3,520円
書籍のご注文はオーム社サイトへ
内容
Pythonはリバースエンジニアやソフトウェアテスターといったセキュリティのプロにも人気の言語です。本書では、ハッキングツールやテクニックの概念を解説したうえで、Pythonを使ったバイナリ解析技法について詳しく解説します。読者は、独自デバッガの構築、バグを発見するためのツールの作り方、オープンソースのライブラリを活用した処理の自動化、商用ソフトとオープンソースのセキュリティツールを連動させる方法などについて学ぶことができるでしょう。日本語版では、本書をより深く理解するための補足情報とリバーシングに役立つツールについての解説を加筆しました。/ART/OF/REVERSINGシリーズ第1弾。
関連書籍
目次
序文 まえがき 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 索引