如何获得快速损坏的对象名称

时间:2016-11-06 17:23:45

标签: swift

我已经了解到,swift实际上创建了一个名为" mangling"内部用于所有对象。

所有主题都谈到了消解,但是如何真正得到错误的名字?

我试过了 1- object_getClass(s​​elf)
2- NSStringFromClass(MyClass.self)
但他们返回正常的班级名称。

我发现了这个demangle项目.. https://github.com/mattgallagher/CwlDemangle/blob/master/CwlDemangle/CwlDemangle.swift
可能有一个整修项目吗?

注意:我使用的是swift 3.0.1

1 个答案:

答案 0 :(得分:1)

xcode附带一个命令行工具来解析名称。

输入: swift demangle

然后找到你的错位类名.. __TMaC17find_the_treasure15YD_Secret_Class

然后看着它吐出的名字.. find_the_treasure.YD_Secret_Class

如果你想观察被破坏的名字,你可以把生成的Swift iOS或macOS二进制文件放到像HopperiDAProradare2这样的反汇编程序中。

自动解除名称的工具已经在这里(参考Hopper v4.0 Dissassembler)。