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

How to print the names of all Objective-C classes in an iOS binary?

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

我尝试了什么:

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

但我不知道如何只解析 objective-c class 名称。

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

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

我假设你不喜欢

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(,3)}'|uniq 

比较屈服

ViewController
AppDelegate