PR:この記事にはアフィリエイトリンクが含まれます。
Linuxバイナリエクスプロイトの本は、Cのメモリ破壊を学ぶ入門書から、ROPやASLR回避まで扱う実践書まで幅広いです。x86-64を学ぶなら、Linuxと書かれているだけで決めず、64ビット機械語と演習環境が明記された本を軸にしたいですね。
ROPは、既存コードの短い断片をつないで処理を組み立てる考え方です。スタックやレジスタ、関数呼び出し規約が分かると、書籍ごとの得意分野も見えてきます。
x86-64のROP演習を扱う本、LinuxのELFを読む本、メモリ破壊の基礎を学ぶ本では、それぞれ力を入れる内容が異なります。早見表で各書とテーマの接点を確認しましょう。
| 本 | 得意分野 | x86-64・ROPとの距離 |
|---|---|---|
Computer Systems: A Programmer’s Perspective 第3版 | 機械語から計算機システム全般 | Linux・x86-64のROP演習あり |
| Gray Hat Hacking 第6版 | Linux脆弱性と保護機構 | スタックオーバーフローとROP演習 |
実践バイナリ解析 | Linux ELF解析と解析ツール開発 | x86-64を前提に学ぶ。ROP作成が中心ではない |
Learning Linux Binary Analysis | ELFとプロセス追跡 | x86の32-bit・64-bitを扱う |
Hacking: The Art of Exploitation 第2版 | C、アセンブリ、メモリ破壊 | 基礎向き。付属環境はIntel x86 |
米ドル表記の公式希望小売価格は、CS:APPが$206.65、Gray Hat Hackingが$60.00です。実売価格は時期や販売店で変わります。
Learning Linux Binary Analysisは$48.99、Hacking: The Art of Exploitationは$49.99が公式希望小売価格の目安です。こちらも実売価格は変動します。
x86-64 ROPの前提
x86-64でROPを学ぶなら、命令を眺めるだけでは足りません。入力がスタックに届く流れや戻り先の位置を追い、関数引数をレジスタへ渡す規約もGDBで確かめます。対応づけると課題の動きが見えてきます。
32-bit用教材では、関数の引数をスタックに積む説明が中心になりがちです。x86-64では呼び出し規約とアドレス幅が変わるため、手順をそのまま写せない場合があります。
まずobjdumpで機械語を読み、GDBでレジスタとメモリを追います。ELFのセクションやシンボルの役割も分かると、演習で何を調べればよいか判断しやすくなります。
課題が想定するCPUやLinux環境、解析ツールが具体的なら、操作を手元で再現しやすくなります。初学者には観察する対象が示された本が読み進めやすいでしょう。
ROPと保護機構
ROPでは、NXのようにスタック上のデータを実行させない保護がなぜ重要なのか、課題を通じて理解できます。既存の命令を利用する発想も、ここから見えてきます。
ASLRはプロセス内の領域配置をランダム化し、PIEは実行ファイルの配置にも変化を持たせます。固定アドレスを前提にした課題と、実行ごとに配置が変わる課題では、調べる情報も異なります。
スタックカナリアは、スタック上の特定の値を検査して破壊を検出する仕組みです。何を検査し、何をランダム化するのかを保護機構ごとに整理すると、課題の状況を説明しやすくなります。
ROPを扱う本では、保護機構をデバッガで確かめる流れまで学べると実践的です。実験用プログラムを観察し、何が起きたのか自分の言葉で説明できると理解が深まります。
CS:APP第3版
『Computer Systems: A Programmer’s Perspective』第3版は、Randal E. BryantとDavid R. O’Hallaronによる1,120ページの教科書です。2015年刊で、機械語、プロセッサ、リンク、仮想メモリなどを幅広く扱います。
本書はROP単体の指南書ではなく、Cのコードが機械語に変わり、メモリ上で動く仕組みまで追える教科書です。 CまたはC++の基礎があれば、バッファオーバーフローを計算機システム全体の中で理解しやすいでしょう。
< strong>付属教材のCMU Attack Labでは、Linuxのx86-64環境でバッファオーバーフローやROPを演習します。 GDBとobjdumpを使い、非実行スタックやスタック位置のランダム化も扱います。今回のテーマに直結する課題です。
本全体は計算機システムの教科書なので、エクスプロイト技法を集中的に練習する構成ではありません。公式希望小売価格は$206.65と高め。それでも、ROPの前提から学びたい人には有力な主教材です。
Gray Hat
『Gray Hat Hacking: The Ethical Hacker’s Handbook』第6版は、2022年刊、752ページの中級〜上級向け実践書です。Linuxの脆弱性演習を収録し、スタックバッファオーバーフローから対策回避まで扱います。
ROP演習ではNX回避に取り組みます。スタックカナリア、ASLR、PIE、情報漏えいを通じた回避も扱い、複数の保護機構がある場合の考え方まで追えます。
GDB、pwntools、Ropperなどのツールが登場します。デバッガで状況を調べる作業と、チェーン作成を支援する道具の役割を並べて学べる本です。
公式希望小売価格は$60.00です。ROPと保護機構を幅広く学べます。x86-64固有の手順を身につける際は、各演習が想定するCPU環境を確かめながら進めるとよいでしょう。
解析系の二冊
『実践バイナリ解析』は、Linuxとx86-64を前提知識として、ELFやPEの解析を学ぶ日本語書籍です。全480ページで、逆アセンブリ、コード注入、バイナリ計装、動的テイント解析、シンボリック実行を扱います。
libbfd、Capstone、Pin、libdft、Tritonを使う実践的な内容で、各章末には演習もあります。ROPチェーン作成が中心ではありませんが、実行ファイルの内部を調べる技術を伸ばす補助教材として役立ちます。
『Learning Linux Binary Analysis』は2016年刊、282ページです。Linux 3.2以降を対象に、x86の32-bitと64-bit、ELF、プロセス追跡、バイナリ保護、コードパッチなどを解説します。
Linux標準ツールやGDB、objdump、ptraceを使い、ELFやプロセスの状態を調べます。内部の動きを基礎から知りたい人におすすめです。
基礎の古典
Jon Ericksonの『Hacking: The Art of Exploitation』第2版は、2008年刊、488ページ。C、アセンブリ、メモリ破壊を通じて、エクスプロイトの基礎を段階的に学べます。
バッファオーバーフローやフォーマット文字列、シェルコードに加えて、スタックとヒープも解説します。デバッガでレジスタやメモリを調べる練習も収録。付属LiveCDはIntel x86版で、x86-64のROP課題を中心に扱う本とは役割が異なります。
公式希望小売価格は$49.99です。Cやアセンブリ、メモリの見方に不安がある人には基礎固めとして役立ちます。Linux上のx86-64でROPを演習する主教材には、Attack Labを含むCS:APPをおすすめします。
結論
Linuxのx86-64でROPを演習するなら、まず『Computer Systems: A Programmer’s Perspective』第3版をおすすめします。 Attack LabでGDBやobjdumpを使い、機械語と保護機構の基礎から課題へ進めます。
NXやASLR、カナリア、PIEを含む脆弱性演習を広げたい人には、第6版の『Gray Hat Hacking』が次の一冊です。価格を抑えてLinuxのELFやプロセス追跡を学ぶなら、『Learning Linux Binary Analysis』も検討できます。
バイナリ解析やシンボリック実行を深めるなら『実践バイナリ解析』、Cとメモリの基礎固めなら『Hacking: The Art of Exploitation』。主教材にCS:APPを据え、周辺技術を必要に応じて組み合わせると学びを広げられます。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。





