从静态库反向工程objective-c接口(如class-dump-z)

fun*_*oll 5 reverse-engineering objective-c static-libraries

我有一个用objective-c编写的静态库.我有一个libFoo.a文件的形式.

我想提取库中包含的类和方法,类似于class-dump-z的输出.

我已otool -tV按照此处的建议尝试使用.

但是,输出非常冗长,除了接口声明之外还包含许多其他内容.

根据H2CO3的评论,我尝试了RuntimeBrowser,这似乎是一个很好的工具.但是,从文件 - >打开打开.a文件似乎没有做任何事情.可能是因为我正在使用Mac版本并试图检查iOS库.

我也尝试对静态库运行class-dump-z,但它似乎不起作用:

/**
 * This header is generated by class-dump-z 0.2a.
 * class-dump-z is Copyright (C) 2009 by KennyTM~, licensed under GPLv3.
 *
 * Source: (null)
 */
Run Code Online (Sandbox Code Playgroud)

尝试了常规类转储,但收到此错误消息:

错误:Fat文件不包含指定体系结构的有效Mach-O文件(i386).这可能意味着类转储是在静态库上运行的,不支持.

我下载了IDA for Mac的评估版(6.4.1303322),到目前为止它还是最好的.非常有用 - 只需弹出静态库,您就可以看到类的列表,它可以理解Objective-C 2.0语法,您可以看到这些方法.

话虽这么说,我仍然希望看到一种方法来获得与class-dump-z相同格式的输出.

有人知道提取Objective-c静态库中包含的类和方法的方法吗?当我在调试器中停止时,我可以在堆栈中看到它们,当我使用它时[NSThread callStackSymbols],我知道调试符号存在.