今天準備好了 Ubuntu 的環境來解題,題目是 Hackme CTF 的 helloworld
。
因為我是在 Windows 環境安裝 WSL 來執行題目,不過裝起來的環境似乎沒有辦法直接執行這題的檔案,會有 No such file or directory
之類的錯誤。
file
了一下發現這個檔案是 ELF 32-bit
,而要在 64-bit 的 Ubuntu 執行 32-bit 的執行檔,需要新增 32-bit 架構並安裝一些 library,步驟如下:
dpkg --add-architecture i386
apt update
apt install libc6-i386
完成之後應該就可以執行了!
首先還是先執行看看:
一樣是猜數字的類型,然後我們把執行檔丟進 Ghidra 看看:
首先右鍵把 local_18
重新命名成 guess_num
方便閱讀,再右鍵把 0x12b9b0a1
轉成 decimal,會變成 314159265
:
再往後看,顯然 local_35
就是 flag,我們也把它改名:
看起來,31~33 行應該就是在計算 flag,所以我們應該把 314159265
拿來輸入就可以解開:
成功通關,怎麼覺得跟昨天那題很像 XD
這次好像都選到比較新手向的題目,雖然我本來就是新手,不過要重找一題好像也來不及。不管怎麼樣,Reverse 的環節就到這邊了,後面幾天應該會寫 Pwn 的東西 (?)