如何在iOS二进制文件中打印所有Objective-C类的名称?

时间:2019-12-05 10:21:31

标签: objective-c objdump mach-o otool

我想使用“ otool” “ objcdump” 打印在iOS二进制文件中找到的所有Objective-C类的名称。 我正在未加密的iOS二进制文件macOS上执行此操作。

我尝试过的事情:

  1. 此处建议的解决方案How to statically dump all ObjC methods called in a Cocoa App?
otool -oV /path to executable/ | grep name | awk '{print $3}'

但是我不知道如何仅解析Objective-C类名。

  1. 使用“ nm”的解决方案,但我真的不喜欢它:
nm /path to executable/ | grep _OBJC_CLASS_

你们能用cmd / script帮助我在iOS二进制文件中打印所有Objective-C类的名称吗?

1 个答案:

答案 0 :(得分:1)

我认为您不满意

nm /path to executable/ | grep _OBJC_CLASS_ 

输出:

0000000100003d08 S _OBJC_CLASS_$_AppDelegate
                 U _OBJC_CLASS_$_UIResponder
                 U _OBJC_CLASS_$_UIViewController
0000000100003c90 S _OBJC_CLASS_$_ViewController

是标记为U的父类。

使用otool我必须:

otool -tv /path to executable/|grep ]|awk '{print substr($1,3)}'|uniq 

比较收益

ViewController
AppDelegate