macOSでのバイナリ検査

macOS向けHex Diff / Mach-Oバイナリツール

ABDiffは任意のバイナリをバイト指向のHex diffで比較し、単一のバイナリをスタンドアロンHexビューアとして開き、Mach-Oなどの認識済み形式には構造化された読み取り専用ビューを追加します。

生のバイト情報と意味のある文脈の両方が必要な場面で役立ちます。Hex列とASCII列を確認し、解析済みの構造ツリーで変更をセクション、ヘッダ、メタデータ、ペイロード範囲に対応付けられます。

  • Hex diff
  • スタンドアロンHexビューア
  • Slice単位の検査
  • 読み取り専用レビュー
macOS上のABDiff Mach-O比較ビュー
ABDiff Mach-O比較ビュー

役立つ場面

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

Hexと構造が重要な理由

  • Hex列とASCII列は、表示されたHexをテキストとして扱わずに生のバイト情報を示します。
  • 解析済みの構造ツリーは、意味のあるセクションをバイト範囲へリンクします。
  • ヘッダ、Load Commands、Exportsは意味が異なり、不透明なバイナリ塊として一括表示すべきではありません。
  • 読み取り専用表示により、誤編集ではなく検査に集中できます。

ABDiffが検査する内容

領域 重要な理由
Hex bytes HexとASCIIの文脈で、バイトオフセット上の挿入、削除、置換を比較できます。
単一ファイル 比較相手がまだない場合でも、1つのバイナリを読み取り専用Hexビューアとして開けます。
構造化形式 認識済みのアーカイブ、メディア、データベース、実行ファイル、コンテナを解析済みセクションごとに確認できます。
ヘッダとSlices CPUターゲット、ファイル種別、Universal BinaryのSlice構成を確認できます。
Load Commands プラットフォーム版数、dylib依存、実行時パスを確認できます。
Segments Mach-Oイメージ内部の構造レイアウト変化を理解できます。
Exports SwiftやObjective-Cを含む公開シンボルの変化を確認できます。
Private API候補 配布前に追加確認すべきヒューリスティックを見つけやすくします。

関連ページ