2010年6月頃に、例により粋がって原著版を買ってしまったわけですが、ざっくり読み終えました。
以下のレビュー・解説は原著版を対象としています。問題点を多く挙げてしまっていますが、日本語版で改善されているかもしれません。いずれにしても日本語版を購入しようとしている人は読まなくて結構です。
本書に挑戦しようとしている人向けの三行レビュー:
以下詳細:
逆解析の基礎知識や経験を有する人向けに、Pythonならではの逆解析やデバッグ作業の効率化・自動化を紹介・解説してくれている本です。
ですので、Pythonはもとより、書籍で取り上げているpydasm, pydbg, Immunity Debugger, IDA Pro, pyemuなどのインストール・環境構築の記述は殆どありません。Pythonの文法解説も当然ありません。「言語の一つや二つ、自力で勉強できるでしょ? ツールのインストールや環境構築くらい、自分でできるよね?」と言わんばかりです。
本書のCPU・レジスタの解説と、サンプルコードと動作結果は Intel CPU 32bit Windows 環境を前提としています。
64bit環境only, またはLinux/UNIX環境onlyな人は十分注意が必要です。サンプルコードやツール類がまともに動作しない可能性が非常に高いです。
さらに本書で紹介されているツールはDebugger系のAPIを使いますので、Windows Vista以降であればUACの制限に引っかかる可能性が高いです。Vista, Win7環境の人はその点に注意するか、仮想マシン環境でWinXPを用意してその上で試してみることを推奨します。
サンプルコードや本文でいくつか間違いがあります。
まず、Chapter3を中心に原著版オフィシャルサイトの"Updates"に目を通してください。
上記"Updates"でカバーし切れていない分を以下にまとめましたので、こちらにも目を通してください。
また本書で紹介・使用されているpydasm, pydbg, pcapyのインストールについてはセルフコンパイルが必要になるケースもあると思われます。以下の記事を参考にしてみて下さい。
以上で殆どの罠は回避できると思います。
ただし、Chapter12のUPXのコードだけは、2010.11月時点でのUPXのバージョンのせいか上手く動作せず、修正方法も不明なままです。
問題点ばかり挙げてしまいましたが、それでも類書のないユニークかつawesomeな書籍であることは間違い有りません。上に挙げた問題点はサンプルコードやライブラリ・ツールのインストール関連ばかりであり、内容自体の問題は挙げられていません。
逆解析やデバッグの現場でのPythonの可能性を広げ、「あんなツールも作れるんじゃないか、こんなライブラリも作れるんじゃないか」と夢を抱かせてくれる一冊でした。