macOSでのバイナリ検査

macOS向けMach-O差分ツール

ABDiffは、Sliceごとのメタデータ、Load Commands、Segments、Exports、Private APIの可能性を読み取り専用の構造化ツリーで確認できるmacOS向けMach-O比較ツールです。

生のバイナリ diff では粒度が低すぎる場面で役立ちます。実行ファイル、フレームワーク、アプリバイナリの実際の構造に変更を対応付けて確認できます。

  • Slice単位の検査
  • Load Commands
  • Segments と Exports
  • Private API候補
  • 読み取り専用レビュー
macOS上のABDiff Mach-O比較ビュー
ABDiff Mach-O比較ビュー

役立つ場面

  • ビルド間のバイナリ出力を確認するとき。
  • リリース前にアーキテクチャSliceやプラットフォームメタデータを確認するとき。
  • dylib依存、rpaths、エクスポートシンボルを確認するとき。
  • App Store提出前にPrivate APIの兆候を探すとき。

構造化差分が重要な理由

  • ヘッダ、Load Commands、Exportsは意味が異なり、不透明なバイナリ塊として一括表示すべきではありません。
  • Universal Binaryやプラットフォーム別出力では、Slice単位のグルーピングが重要です。
  • 読み取り専用表示により、誤編集ではなく検査に集中できます。

ABDiffが検査する内容

領域 重要な理由
ヘッダとSlices CPUターゲット、ファイル種別、Universal BinaryのSlice構成を確認できます。
Load Commands プラットフォーム版数、dylib依存、実行時パスを確認できます。
Segments Mach-Oイメージ内部の構造レイアウト変化を理解できます。
Exports SwiftやObjective-Cを含む公開シンボルの変化を確認できます。
Private API候補 配布前に追加確認すべきヒューリスティックを見つけやすくします。

関連ページ