iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
Security

逆向系列 第 30

逆向題目練習 - blade(5)

  • 分享至 

  • xImage
  •  

現在我們已經知道輸入 flag 開頭的指令會進入隱藏的 flag checker,而驗證的部分是 verify 在執行,因此我們開始對 verify 進行分析

https://ithelp.ithome.com.tw/upload/images/20250901/20168374RvUwtYxrDH.png
https://ithelp.ithome.com.tw/upload/images/20250901/20168374FFsxnezY2N.png

  • 通常在驗證的時候,會先執行長度的驗證,這裡的 a3 != 64 推估是在檢查長度是否為 64,因此 a3 = flag 長度
    https://ithelp.ithome.com.tw/upload/images/20250901/20168374ZzBPK5wrlI.png

  • 從這段程式碼中,可看出 v3 = a2,只是進行了比較冗長的複製流程企圖混淆視聽
    https://ithelp.ithome.com.tw/upload/images/20250901/20168374lWfWztBgjd.png

  • v4 = v3
    https://ithelp.ithome.com.tw/upload/images/20250901/20168374ppHkoy8cbD.png

  • 結合上下文來看,函式的參數__int64 a1, __int128 *a2, __int64 a3 可推測分別代表

    • a1:一個指標或 context 之類的東西,未知目前先不深入探討
    • a2:指向 128-bit 的陣列, 為 flag
    • a3:flag 長度
  • 將這些變數重新命名,方便我們後續分析
    https://ithelp.ithome.com.tw/upload/images/20250901/20168374noz5iGXwbp.png
    https://ithelp.ithome.com.tw/upload/images/20250901/201683744mqeeMRpKI.png


上一篇
逆向題目練習 - blade(4)
系列文
逆向30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言