我了解到,斯威夫特实际上创建了一个名为"mangling“的命名方法,用于所有对象的内部。
所有的线程都在讨论去魔化( demangling ),,但是如何才能真正得到这个破损的名字呢?
我试过了
1- object_getClass(自我)
2- NSStringFromClass(MyClass.self)
但是他们返回正常的类名。
我发现了这个解魔项目..。https://github.com/mattgallagher/CwlDemangle/blob/master/CwlDemangle/CwlDemangle.swift
有可能会有损坏的项目吗?
注:我使用的是3.0.1
发布于 2017-09-13 11:02:38
xcode附带了一个命令行工具,用于解除名称。
输入:swift demangle
那就找出你那残缺不全的名字..。__TMaC17find_the_treasure15YD_Secret_Class
然后看着它吐出名字..。find_the_treasure.YD_Secret_Class
如果您想按照您的要求观察损坏的名称,可以将生成的Swift iOS或macOS二进制文件放入反汇编程序中,如Hopper、iDAPro或radare2。
自动解除故障名称的工具已经在这里了(请参阅Hopper v4.0 Dissassembler)。
https://stackoverflow.com/questions/40452269
复制相似问题