バイナリ入門書


はじめて学ぶバイナリ解析

セキュリティのコースを受講しているのでセキュリティ関係の良い本がないものかと探していました。有名な本に「セキュリティコンテストチャレンジブック」がありますがこちらはCTF等で出題される分野を満遍なく学ぶ本です。私が探していたのはセキュリティの分野でも初学者が学びにくいとされているバイナリやpwnの入門書だったので、「はじめて学ぶバイナリ解析」で学習しました。


内容としては主にバッファーオーバーフローを題材として脆弱性を学習していくものです。導入部分は環境構築に始まり(私はkali Linuxで進めました)、C言語コンパイルやバイトオーダの説明から始まります。


その後、バッファオーバーフローの説明に必要なスタック領域の章があり、スタックがEBPやEIPといったレジスタによってどのように構成されている続きます。スタックのメモリ確保の向きなどが初学者にとって敷居の高い部分を図やgdb-pedaを用いて説明されておりわかりやすくなっています。


後半部分はこれまでの応用になっていてリターンアドレスの書き換えや標準ライブラリを実行させる内容が続き、最後はこれらのバッファオーバーフロー脆弱性をどのように防いでいるのか防御機能の紹介になっています。


バイナリ解析はプログラムがメモリ上にどのように展開されて発生しているのか、初学者にとってはイメージし難い分野のため専門的なセキュリティ関係の本で学ぶ前に本書のような入門書で学習するのは足がかりとしてよいと思いました。