re-swift
Installation
SKILL.md
Swift 逆向
何时使用 / 何时不用
- 用:Swift 产物(Mach-O/ELF 含 Swift mangling 特征
$s前缀,或__swift5_*反射段),需要还原符号/协议一致性/闭包结构 - 用:混合产物中区分 Swift 层与 ObjC/C 层(先走 ObjC 路径再进 Swift 层)
- 不用:纯 ObjC(走 [[re-ios]] / [[re-macos]] 的 ObjC 路径);纯 C/C++(走 [[re-cpp-abi]])
- 不用:只需普通反编译([[re-ghidra]] / [[re-ida]] 直接上)
工具准备
swift-demangle(Swift 工具链,mangling 解码)
- macOS: Xcode 自带(
xcrun swift-demangle);Linux: Swift 官方工具链(swift.org 下载 tar 包解压即用,含swift-demangle);Windows: Swift 官方工具链 - 验证:
echo '$s4main6myFuncyyF' | swift-demangle(macOS 用xcrun swift-demangle;无参数时读 stdin,输出$s... ---> main.myFunc() -> ()) - 批量:
llvm-nm sample | swift-demangle;-simplified出精简名;-expand出解码树