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

时间:2013-11-20 20:40:18

标签: objective-c static-libraries reverse-engineering

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

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

我已按照建议here尝试使用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)
 */

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

  

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

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

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

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

0 个答案:

没有答案