我了解到 swift 实际上创建了一种名为“mangling”的命名方法,在内部用于所有对象。
所有线程都讨论重整,但如何真正获得重整名称?
我尝试过
1- object_getClass(self)
2- NSStringFromClass(MyClass.self)
但它们返回正常的类名。
我找到了这个 demangle 项目..
https://github.com/mattgallagher/CwlDemangle/blob/master/CwlDemangle/CwlDemangle.swift
可能有一个损坏项目吗?
注意:我使用 swift 3.0.1
xcode 附带了一个命令行工具来解析名称。
输入:
swift demangle
然后找到你的损坏的类名..
__TMaC17find_the_treasure15YD_Secret_Class
然后看着它吐出名字..
find_the_treasure.YD_Secret_Class
如果您想观察损坏的名称,正如您所要求的,您可以将生成的 Swift iOS 或 macOS 二进制文件放入反汇编程序中,例如Hopper,iDAPro或radare2。
自动消除名称混乱的工具已经在这里(请参阅 参考资料Hopper v4.0 Dissassembler)。