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

Sis*_*sky 1 mach-o objective-c otool objdump

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

我尝试过的:

  1. 这里建议的解决方案如何静态转储 Cocoa 应用程序中调用的所有 ObjC 方法?
otool -oV /path to executable/ | grep name | awk '{print $3}'
Run Code Online (Sandbox Code Playgroud)

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

  1. 使用“nm”的解决方案,但我不太喜欢它:
nm /path to executable/ | grep _OBJC_CLASS_
Run Code Online (Sandbox Code Playgroud)

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

Kam*_*l.S 6

我假设你不喜欢什么

nm /path to executable/ | grep _OBJC_CLASS_ 
Run Code Online (Sandbox Code Playgroud)

输出:

0000000100003d08 S _OBJC_CLASS_$_AppDelegate
                 U _OBJC_CLASS_$_UIResponder
                 U _OBJC_CLASS_$_UIViewController
0000000100003c90 S _OBJC_CLASS_$_ViewController
Run Code Online (Sandbox Code Playgroud)

是标有 的父类U

使用otool我必须:

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

比较产量

ViewController
AppDelegate
Run Code Online (Sandbox Code Playgroud)