nc で接続し、そのサーバで実行されたバイナリが渡される pwn。「日記を保存する機能」「最後に保存した日記を表示する機能」がついたバイナリが渡される。見たところ最初に「flag」という関数を読んでおり、ファイルを open して特定のメモリのアドレス（少なくとも objdump で見る限りハードコード）に書き込んでいた。バッファオーバーフローさせるのかと思いきや入力はすべて fgets だった。また、 strchr を呼び出して ‘n’ が含まれているとなぜか「rude!」と表示されて終了する仕様だった。出力を見ると printf だったので、日記の内容を %d とかにするとその時のスタックの一部のデータが出力された。n がブロックされているので、%n が使えず、メモリに書き込むことはできない。gdb で見たところ、しばらく先に日記の内容があったので、日記の先頭部分に flag のアドレスを書き、あとは %d でしばらく埋めつつ flag のアドレスが来る場所に %s を置くとフラグが表示された。