SuperAPI AI 工具集

re-swift

通用与其它

查看项目

更新于 10-15 23:40

技能介绍

用途:面向含 Swift mangling 特征($s/$S/_T0 前缀或 _swift5* 反射段)的 Mach-O/ELF 产物,还原符号、协议一致性、闭包结构,并在混合产物中区分 Swift 层与 ObjC/C 层。纯 ObjC 或纯 C/C++ 走其他分析路径;仅需普通反编译可直接用 Ghidra/IDA。

主要能力:用 swift-demangle(macOS 为 xcrun swift-demangle)批量解码 mangling,输出模块名、类型、函数签名与泛型展开,结果可写回符号表用于 Ghidra/IDA 重命名;用 llvm-nm/llvm-objdump、otool 定位符号与反射段;解析协议 witness table 的分发表与 conformance 记录(含间接 conformance);还原闭包 context 的捕获字段与引用语义;处理 @objc 桥接 thunk(_To 后缀);从 __swift5_fieldmd、__swift5_typeref、__swift5_reflstr 恢复类型布局。

必要用法:先用 strings、llvm-nm、otool -l 确认产物特征,再批量解码,例如 llvm-nm -m sample | awk '$3 ~ /^$s/ {print $3}' | swift-demangle;ELF 用 readelf -s。符号提取须用符号表而非 strings,因 mangled 名可能含控制字符。

限制与陷阱:mangling 分三代,新符号需较新工具链;泛型特化符号多,宜按模块/类型聚类后先还原原型;strip 后符号名消失但反射段仍在,需从反射段重建类型/协议关系;Swift 4 老产物无反射段,只能靠前缀与运行时调用点识别。