iPhone未公开的Security.framework API

时间:2010-11-11 21:41:02

标签: iphone security reverse-engineering iphone-privateapi

我阅读了一些关于获取未记录的API的.h文件的信息。大多数消息来源推荐使用class-dump(或class-dump-x和class-dump-z)。

然而,它不适用于iPhone Security.framework。它不包含Objective-C运行时信息。

我找到的唯一方法是使用nmotool。这将为它们提供函数和反汇编的名称。

有人知道一些更快的方法来获取未记录的函数签名,而不是阅读反汇编并试图找出哪些参数去哪里以及它可能是什么?

2 个答案:

答案 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/