我是新手拆解和逆向工程二进制文件,所以请原谅我,如果这个问题没有意义或不可能。
过去当我尝试逆向工程macOS二进制文件时,分析用Objective-C编写的文件会产生很多有用的信息,因为通常所有的Objective-C类及其方法名都很容易检索,使得弄清楚任何特定方法的作用要容易得多。
我试图分析用Swift编写的二进制文件(技术上是Swift和Objective-C的组合),现在大多数函数都没有符号。我可以像往常一样检索一些Objective-C方法,以及一些具有Swift风格的错位名称的函数,但几乎所有其他函数都没有符号。我知道很多都必须是Swift方法。
无论如何都要弄清楚这个二进制文件的Swift类是什么以及它们与Objective-C一样的相关方法?
使用像Hopper Disassembler这样的工具会显示一些Swift类的名称(通常是像_TtC4Something25SomethingElse
这样的符号),我可以得到它的实例变量名称及其偏移量的列表,但没有方法名称。
注意:有问题的二进制文件是x64 macOS二进制文件,而不是iOS二进制文件。
答案 0 :(得分:2)
通常,逆向工程是从汇编中提取有意义的构造和描述的过程。到目前为止你所做的通常只是“正常”反向工程任务的第一部分。 这有时可能是一个繁琐的过程,它涉及映射结构并直接从汇编代码中理解函数的含义。
有are pleanty of反向工程教程和其他来源,并且需要对相关汇编语言有一个很好的理解。
我真的推荐this本书(它是合法的在线版,原作版本是chm
由作者发布),这在单个SO问题中不容易涵盖。
您可能还希望在reverse engineeing SE测试版中获得更具体的帮助。
我希望我指出你正确的方向。