本当のReversing初心者がGhidraでpicoCTF 2022「Bbbbloat」をただ解く
はじめに
ただのWriteupです。
https://play.picoctf.org/practice/challenge/255?category=3&originalEvent=70&page=1
Writeup
とりあえず実行してみると好きな数字を聞かれるので、答えたら「違う、そうじゃない」とのこと。
$ ./bbbbloat What's my favorite number? 111 Sorry, that's not it!
GDBで解こうとしたら「(No debugging symbols found in bbbbloat)」と言われてしまいました。このシンボルというのがないと、デバッグできないらしいです。
しかたがないのでGhidraで開きます。適当なプロジェクトを開いて、bbbbloatをドラッグ&ドロップしました。
左中段のSymbol Treeからentryを選択して、右のDecompileを呼んでみます。FUN_00101307
という関数が最初に実行されるっぽいです。
Symbol TreeからFUN_00101307
を選択してDecompileを読みます。メッセージを表示した後、21行目でlocal_48
と0x86187
を比較していることが分かります。
PythonのREPLでint(0x86187)
を実行すると、549255
という値が返ってきます。これをbbbbloatに渡してやると、flagが出力されます。