Suzu macOS Playground

M12 · CTF

靜態偵察——只讀檔案,把一個 binary 讀回語意

給你一個「你自己擁有」的合成 binary(不執行它)。用靜態工具鏈回答四個問題:它連了哪些 dylib/framework、匯出/匯入哪些符號、它的 ObjC class 與 method 介面長怎樣、它的 Swift/C++ 符號 demangle 後是什麼。全程唯讀、不執行目標,辨認哪些線索只靠靜態就能拿到、哪些得等動態。

← 先讀 M12 章節

此關卡對應的模擬器(reverse-bench)尚未提供。

過關目標

解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。

提示

卡住時

先 otool -L / dyld_info -linked_dylibs 看它依賴什麼,再 nm -m 看符號來源,最後 otool -oV 把 ObjC metadata(class/method)dump 出來。這三步不執行目標。

走錯方向時

想看「執行期解密後的字串」或「實際走哪條分支」?那不是靜態能給的——靜態看到的是「所有可能路徑」與「保留在檔案裡的 metadata」。先把靜態地圖建完,動態才驗問號。

想更深入

Swift/C++ 符號是 mangled。Swift 用 `xcrun swift-demangle`(swift-demangle 在 Xcode toolchain,不在預設 PATH),C++ 用內建 c++filt。class-dump 是第三方,需先安裝。

相關指令

otoolnmdyld_infoclass-dumpc++filtswift-demangle
← 回 CTF 場