bruteforce
問題
Calculate the flag.
Note: Please don't misunderstand, DO NOT bruteforce the server.
bruteforce
メモ
解法
逆アセンブルして読むとsigsetjmpとSIGFPEとlongjmpを用いて, ゼロ除算が発生したらsigsetjmpしたところに8を返して戻るようになっている。 また,60108cにある変数は,ゼロ除算が発生した時のみ1になる。
sigsetjmpした後に呼び出される4008c0の関数は
を計算しているが,これはarg1が素数の時のみ0除算が発生しない。 よって素数の時のみ0x8(%rsp)がカウントアップされ,0x8(%rsp)が10000000になった時にフラグが表示される。
"10000000th prime"を検索 → Wikipediaに "179424673 – 10000000th prime number"
ADCTF_179424673