macOS / Mach-O 逆向工程
注意事項(讀完後立刻執行)
現在: 讀取../field-journal/precedent-reverse.md現在: 確認目標為 macOS/Mach-O/App bundle(iOS IPA →mobile-reverse/)下一步: tool-index;jtool2/lldb 等執行: 簽名與裝載資訊 → 靜態 → 動態(lldb/Frida)
適用場景
- Mach-O 可執行檔案 / dylib / framework
- .app bundle、LaunchAgent/Daemon
- Objective-C / Swift 符號與 runtime
- 公證/簽名、Hardened Runtime、TCC 相關行為分析
- macOS 惡意軟體靜態/動態分析(聯合 malware-analysis)
工作流程
1. 包體與簽名
file target
codesign -dv --verbose=4 target
spctl -a -vv target 2>&1
otool -L target
2. 靜態
□ class-dump / swift-demangle / Hopper / Ghidra / IDA
□ 字串與 XPC 服務名稱、TCC 敏感 API
□ LC_LOAD_dylib 依賴與 rpath
3. 動態
□ lldb / Frida
□ fs_usage / log stream 觀察
□ 網路:聯合 protocol-reverse 或代理
工具鏈
| 工具 | 用途 |
|---|---|
| otool / nm / codesign | 系統內建 |
| Hopper / Ghidra / IDA | 反編譯 |
| class-dump / dsdump | ObjC |
| Frida / lldb | 動態 |
| jtool2 | Mach-O |
參考
references/macho-triage.md../mobile-reverse/(iOS)../ghidra-reverse/../malware-analysis/
路由上下文
上游: MASTER R31
下游: iOS → mobile-reverse;通用樣本 → malware-analysis
任務完成自檢
- 是否記錄簽名/Hardened Runtime 狀態?
- 是否有地址級/符號級結論?
- Checklist?