承接上文,
查看完 verify
後,我們觀察即可能與 verify
相關的 prompt
程式碼,並搜尋 verify
我們在 13A6D 查看到該程式碼(按下 Tab 可進行反編譯)
cmp dword ptr [r15], 67616C66h
或
case 0x67616C66:
67616C66
為 16 進位 → 0x67 0x61 0x6C 0x66
,轉換成 ASCII = glaf
(按右鍵,點擊 Char 轉換即可),由於檔案為 Little Endian,因此需要倒過來看,即為 flag
,因此若輸入的指令開頭為 flag
,則會觸發 verify
其他在 flag
附近的 case 分別為:
65707974
= "type"
67616C66
= "flag"
74697865
= "exit"
74697571
= "quit"
因此我們回到終端機,輸入「開頭為 flag
」的任意字串,得到了 Incorrect 的結果,與輸入一般指令(此處輸入 a
)得到的回覆不同,證實輸入開頭為 flag
的任意字串可進入隱藏的 flag checker