我阅读了一些关于获取未记录的API的.h文件的信息。大多数消息来源推荐使用class-dump(或class-dump-x和class-dump-z)。
然而,它不适用于iPhone Security.framework。它不包含Objective-C运行时信息。
我找到的唯一方法是使用nm
或otool
。这将为它们提供函数和反汇编的名称。
有人知道一些更快的方法来获取未记录的函数签名,而不是阅读反汇编并试图找出哪些参数去哪里以及它可能是什么?
答案 0 :(得分:3)
你的意思是这个没有证件的api,documented here..
Security.framework不是私有的或没有文档的。
就标题而言,安装在3.2 sdk的硬盘上我发现:
/Security.framework/Headers/Security.h /Security.framework/Headers/Secbase.h /Security.framework/Headers/SecCertificate.h /Security.framework/Headers/SecIdentitiy.h /Security.framework/Headers/SecImportExport.h /Security.framework/Headers/SecItem.h /Security.framework/Headers/SecKey.h /Security.framework/Headers/SecPolicy.h /Security.framework/Headers/SecRandom.h /Security.framework/Headers/SecTrust.h
对于一个小逆向工程101,您应该意识到框架不包含或无论如何都可以用于头文件或函数签名。提供时,它们仅供开发人员使用。编译框架中没有C或C ++或Objective-c代码,只有原始机器代码。
正如您所看到的,如果使用objective-C,Class-Dump可以很好地将objective-c符号排列成看起来像头文件的东西,只缺少运行时未使用的类型信息,所以仍然没那么有用。
如果源语言是C,那么你就搞砸了。可能有一个函数名称符号,但没有关于参数或返回类型的信息。
答案 1 :(得分:1)
官方文档中未提及大量其他未记录的API。例如,其中一部分可以在这里看到:
http://www.opensource.apple.com/source/Security/Security-55163.44/sec/Security/