iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Security

30 天闖關 picoCTF系列 第 25

[2025鐵人賽Day25]Reverse

  • 分享至 

  • xImage
  •  

這是我今天要解的題目
https://ithelp.ithome.com.tw/upload/images/20251002/20178623fy9KH26PFc.png
一樣我們先確認檔案型態

file ret                                    
ret: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6c43c1779ecbf9a8df

簡單來說,file ret告訴我們這個檔案是個64位元的Linux執行檔,重點只有兩件事:一、它是位置會被隨機搬動的PIE,也就是系統會把程式載到不同記憶體位置,讓你不能直接用固定位址去跳;二、它會載入系統的函式庫像 libc,也就是程式本身沒把所有東西都打包好,執行時還要去找系統的共用程式庫。對做逆向或攻擊的實際影響就是不能直接用硬編地址,要先找到程式或函式庫的實際位置。
但這邊我在顯示檔案時就直接找到了答案
https://ithelp.ithome.com.tw/upload/images/20251002/201786235E9e26PuCr.png

strings其實是最快的偵查方式,會把二進位中看得出來的文字抓出來;如果flag是放在字串常數(也就是程式碼裡常見的printf("picoctf{...}") 類型),strings幾乎都能抓到。有些題目會把flag不直接用可見字串存放會在做編碼、壓縮或在執行時組合,那時才要用逆向或偵錯去拆。
這題本來是一個逆向題,給了一個可執行檔,程式執行時會要求密碼,flag需要你找出這個密碼或繞過檢查。重點不是網頁或資料檔,而是看這個程式 裡面怎麼比對密碼。那有時用strings或cat顯示內容是最直觀有效的方式,接找到答案的同時也讓我了解到逆向工程的概念。


上一篇
[2025鐵人賽Day24]GET aHEAD
下一篇
[2025鐵人賽Day26]Magikarp Ground Mission
系列文
30 天闖關 picoCTF27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言