役立つ場面
- 任意のバイナリをバイト単位で比較するとき。
- 単一のバイナリをスタンドアロンHex検査で開くとき。
- ビルド間のバイナリ出力を確認するとき。
- リリース前にアーキテクチャSliceやプラットフォームメタデータを確認するとき。
- dylib依存、rpaths、エクスポートシンボルを確認するとき。
- App Store提出前にPrivate APIの兆候を探すとき。
macOSでのバイナリ検査
ABDiffは任意のバイナリをバイト指向のHex diffで比較し、単一のバイナリをスタンドアロンHexビューアとして開き、Mach-Oなどの認識済み形式には構造化された読み取り専用ビューを追加します。
生のバイト情報と意味のある文脈の両方が必要な場面で役立ちます。Hex列とASCII列を確認し、解析済みの構造ツリーで変更をセクション、ヘッダ、メタデータ、ペイロード範囲に対応付けられます。
| 領域 | 重要な理由 |
|---|---|
| Hex bytes | HexとASCIIの文脈で、バイトオフセット上の挿入、削除、置換を比較できます。 |
| 単一ファイル | 比較相手がまだない場合でも、1つのバイナリを読み取り専用Hexビューアとして開けます。 |
| 構造化形式 | 認識済みのアーカイブ、メディア、データベース、実行ファイル、コンテナを解析済みセクションごとに確認できます。 |
| ヘッダとSlices | CPUターゲット、ファイル種別、Universal BinaryのSlice構成を確認できます。 |
| Load Commands | プラットフォーム版数、dylib依存、実行時パスを確認できます。 |
| Segments | Mach-Oイメージ内部の構造レイアウト変化を理解できます。 |
| Exports | SwiftやObjective-Cを含む公開シンボルの変化を確認できます。 |
| Private API候補 | 配布前に追加確認すべきヒューリスティックを見つけやすくします。 |