2018/12/02

Google CTF Beginners Quest FLOPPY2

自力で解けなかったためGoogle CTF: Beginner Quest: FLOPPY2 (Debugging DOS Programs)を参考にした。

FLOPPYにてフラグが書かれていたファイルにIn case of emergency, run www.comと書かれており、runから分かるようにこのファイルは実行可能。(ここが分からなかった)

$ cat driver.txt
This is the driver for the Aluminum-Key Hardware password storage device.
     CTF{DUMMY}

In case of emergency, run www.com

COMファイル1はMS-DOSで実行可能であり、ここではDOSBox2を用いてエミュレートする。Debian系であればaptでインストールできる。

後述のデバッグのためDOSBoxのdebugger3もインストールする。

適当なディレクトリにwww.comと、debuggerに入っているDEBUG.COMを入れる。以下、このディレクトリをworkdirと呼ぶ。

dosboxを起動し、mount c ./workdirでworkdirをC:にマウント。c:でマウント先に移動する。

DEBUG.COM WWW.COMで、WWW.COMをデバッガで起動。デバッガにてgでWWW.COMを実行し、dで実行結果をダンプ。フラグを得る。

www.comはテキスト内に制御文字が含まれているため、そのまま実行してもフラグが表示されない。4

デバッガを使わずとも出力結果をファイルに保存し、テキストエディタやバイナリエディタで開いてもフラグを得ることができる。


  1. COMファイル - Wikipedia
  2. DOSBox, an x86 emulator with DOS
  3. Download Enhanced DEBUG (formally DOS Debug) 1.32
  4. CTFtime.org / Google Capture The Flag 2018 (Quals) / Beginner’s Quest - Floppy2 / Writeup