# class-dump Objective-C 头文件生成工具

> 一款命令行工具，读取 Mach-O 可执行文件、框架和 bundle 中的 Objective-C 运行时元数据，并将其中的类、类别和协议输出为常规的 Objective-C 声明；信息与 otool -ov 所显示的相同，但形式更紧凑。它可以为每个类生成一个头文件，递归展开二进制所用的框架，从通用二进制中选择单一架构，对输出进行筛选或排序，并标注实例变量偏移和方法实现地址。

- 类型：工具
- 目标：应用 · 二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-10-30
- 原始资源：<https://github.com/nygard/class-dump>
- 一手来源：<https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/class-dump/>
- 记录 JSON：<https://awesomerea.org/resources/class-dump/record.json>
- 英文版：[English](https://awesomerea.org/resources/class-dump/index.md)

## 使用条件与局限

- 项目已基本停滞：最新标签 3.5 的日期为 2013-11-16，GitHub 上的发布条目止于 3.4，README 让用户到作者网站获取最新版本。所审阅的 master 提交日期为 2019-03-15，比 3.5 多出 75 个提交，其中包含尚未发布的改动，例如改用 macOS 10.14 SDK 构建。
- 需在 macOS 上用 Xcode 打开仓库自带的 class-dump.xcodeproj 构建，各目标的部署目标为 macOS 10.8 和 10.9。README 的用法说明列出 ppc、ppc64、i386 和 x86_64，3.5 版更新日志又加入 arm64；文档未说明是否支持更新的 Apple 架构或元数据格式。
- 输入为使用者已有的 Mach-O 文件、框架或 bundle，且只解析 Objective-C 元数据；带有加密加载命令的文件会在输出头部被标出。未发布部分的更新日志称 Swift 类型的类型编码为空，现以 MISSING_TYPE 写出，因此无法还原 Swift 类型。输出只有声明，不含方法实现。
- Tests/doTests.py 是一个 Python 2 脚本，用于在已安装的系统框架上比较新旧两个构建的输出差异；仓库没有 CI。README 中的声明采用 GPL-2.0-or-later 许可，版权归 Steve Nygard（1997–2019），仓库中没有单独的许可证文件；ThirdParty/blowfish.c 采用 LGPL-2.1-or-later。根据闭源二进制生成的头文件仍受其权利人的权利约束。

## 一手来源

1. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/README.md>
2. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/CHANGELOG.md#L1-L15>
3. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/class-dump.xcodeproj/project.pbxproj>
4. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/Source/CDClassDumpVisitor.m#L104-L112>
5. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/Tests/doTests.py>
6. <https://github.com/nygard/class-dump/blob/2c82b4ff12b2ea5d1ac23e49281d496997370841/ThirdParty/blowfish.c>
7. <https://github.com/nygard/class-dump/releases/tag/3.4>

## 同分区更多条目：原生二进制

- [Lucid Hex-Rays 微码浏览器](https://awesomerea.org/zh/resources/lucid-microcode-explorer/index.md) · 工具
- [r2dec radare2 反编译插件](https://awesomerea.org/zh/resources/r2dec/index.md) · 工具
- [Runtime Mobile Security（RMS）移动应用运行时分析界面](https://awesomerea.org/zh/resources/rms-runtime-mobile-security/index.md) · 工具
- [Pharos 二进制静态分析框架](https://awesomerea.org/zh/resources/pharos/index.md) · 工具
- [heimdall-rs EVM 字节码分析工具包](https://awesomerea.org/zh/resources/heimdall-rs/index.md) · 工具
- [PE-bear PE 文件分析工具](https://awesomerea.org/zh/resources/pe-bear/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
