Write up reverse200

14
AEOI CTF Quals 2013 Reverse 200

Transcript of Write up reverse200

Page 1: Write up reverse200

AEOI CTF Quals 2013

Reverse 200

Page 2: Write up reverse200

Reverse 200

● 問題文は What is the flag ? のみ● find_prime_again.txt というファイルをダウンロード

する

Page 3: Write up reverse200

Reverse 200

● とりあえず何のファイルなのか調べる

● file find_prime_again.txt

Page 4: Write up reverse200

Reverse 200

● ファイル名のとおり、素数を判別しているみたい

Page 5: Write up reverse200

Reverse 200

● プログラムだけどストライプされていて厄介● とりあえず逆アセンブルとかデバッガとかを利用して解析していく

● gdb とか objdump とか

Page 6: Write up reverse200

Reverse 200

● 何かファイル開いている● 第一引数はファイルのパス

Page 7: Write up reverse200

Reverse 200

● /tmp/flag.dat というファイルを開いている

Page 8: Write up reverse200

Reverse 200

● 書き込んで閉じている● 書き込んでいる内容と実際に書き込まれた内容を確

認する。

Page 9: Write up reverse200

Reverse 200

● 書き込まれる内容と書き込まれた内容

● this is NOT flag!!!!

Page 10: Write up reverse200

ちょっと飛ばします

Page 11: Write up reverse200

Reverse 200

● 何か実行時には呼ばれていなかった関数があった

Page 12: Write up reverse200

Reverse 200

● 入力を求められた時に入れた数と

0x1935c8b7 という数を比べて一致したら関数が呼ばれるようになっている

Page 13: Write up reverse200

Reverse 200

● 0x1935c8b7(422955191) を入力してみる

Page 14: Write up reverse200

Reverse 200

● 0x1935c8b7(422955191) を入力してみる

● やったぜ