Mach-O比较
ABDiff可以在结构化的只读树中比较Mach-O二进制文件。 此视图可用于审查平台目标、依赖性和API表面更改。
开始Mach-O比较
- 将两个Mach-O二进制文件放入窗口中,以打开Mach-O比较视图。
- 将一个Mach-O文件拖放到窗格上,只替换那一面。
视图显示的内容
- 带有缩进和披露控制的双列树。
- 差异使用与其他比较相同的添加/删除/修改颜色突出显示。
- 汇总按钮比较关键元数据(大小、CPU切片、平台版本、分段计数、运行时路径和导出)。
树木结构
每个Mach-O文件按架构切片(例如,Slice arm64)分组,然后按类别分组:
- 标题 — CPU、文件类型、标题标志。
- 加载命令—平台+最小操作系统+SDK版本,dylib依赖项和rpaths。
- 私有 API 候选项——来自私有框架、导入符号、运行时查找API和可疑字符串的启发式信号。
- 分段 — 带有可选描述的内存布局分段。
- 导出——公共符号分组为Objective-C、C/C++、编译器生成和去形Swift符号。
查看选项
使用底部栏选项菜单自定义树:
- 仅显示差异隐藏相等条目,同时保留带有更改的祖先组。
- 仅显示私有API将树缩小到启发式私有API候选者,同时保留其祖先组。
- 显示描述切换大多数元素的描述性后缀。
私有 API 候选项是启发式的。 它们可以显示强有力的证据,如链接的私有框架,或较软的信号,如运行时查找助手和可疑字符串字面值。
关键导航
| 操作 | 快捷键 |
|---|---|
| 上一行/下一行 | ↑/↓ |
| 上一个/下一个更改 | ⌥↑/⌥↓ |
| 跳到第一排/最后一排 | ⌘↑/⌘↓ |
| 切换活动面板 | ⇥ |
| 展开/折叠组 | →/← |
⌥↑/⌥↓目标更改了叶行并跳过组行。- 如果目标更改的行在折叠组内,则会自动展开祖先。
- 在叶行上,
←/→仅当目标窗格有内容时才会切换窗格。
只读行为
Mach-O比较仅供参考。 编辑被禁用。