100日後にKaggle Masterになるトカゲ

Kaggle Masterになるまでに考えたこと、インプットしたことを中心に不定期に何か書く。

『はじめて学ぶバイナリ解析』本の非公式実行環境を作った

『はじめて学ぶバイナリ解析』実行環境(非公式)

『はじめて学ぶバイナリ解析』本1の非公式実行環境をDockerで作成し、MITライセンスで公開しました。公式では実行環境をVirtualBoxで提供していますが、資材が1.7GBと軽いのが特徴です。

github.com

作った経緯など

公式で提供されたVirtualboxの環境ががM1 Macでうまく動かせなかったので、最初は「M1 Macで課題が動かせる環境」を作ろうと思いました。 ところが、構築を進めていくうちに、デバッガや可視化ツールの多くはM1 Macチップセットに対応していないことや、Intel系とArm系では命令セットの体系が大きく異なるので演習課題を同じように進められないことがわかり、M1 Mac用の環境構築は諦めました。公開した資材はUbuntu 22.04(x86_64)で動作確認済みです。

本を読んだ・課題をやった感想

本書はCTF(Capture The Flag)の初歩的な課題として取り上げられるStack Overflow攻撃の仕組みを理解することがゴールになっていて、前半ではその仕組みを理解するためのアセンブリ言語やスタック、レジスタ、デバッガの使い方などについて説明しています。

基本的に前提知識を必要とせず、書いてあることを読めば理解できるので非常に読みやすかったです。

課題は大学の時にやった情報処理演習みたいで楽しく進めることができました。課題自体は理解しやすかったですが、環境構築で結構な時間をロスしました。今回公開した環境を使うことで課題に集中できるようになれば幸いです。