我读了一些关于获取未记录的API的.h文件的信息。大多数参考资料都推荐使用class-dump (或者class-dump-x和class-dump-z)。
但是,它不适用于iPhone Security.framework。它不包含Objective-C运行时信息。
我发现的唯一另一种方法是使用nm或otool。这将给出函数的名称和它们的反汇编。
有没有人知道比读取反汇编并试图弄清楚哪些参数会去哪里以及它会是什么更快的方法来获得未记录的函数签名?
发布于 2010-11-17 23:18:26
您指的是这个未记录的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,那么你就完蛋了。可能有一个函数名称符号,但没有关于参数或返回类型的信息。
发布于 2013-03-05 04:36:20
在官方文档中没有提到的还有一堆没有文档记录的API。例如,可以在这里看到其中的一部分:
http://www.opensource.apple.com/source/Security/Security-55163.44/sec/Security/
https://stackoverflow.com/questions/4159550
复制相似问题