mirror of
https://github.com/NohamR/macho-diff.git
synced 2026-07-11 22:42:23 +00:00
ddc5669a36a89c6efe572586488da3f075a7a986
Bumps [capstone](https://github.com/aquynh/capstone) from 5.0.7 to 5.0.9. - [Release notes](https://github.com/aquynh/capstone/releases) - [Changelog](https://github.com/capstone-engine/capstone/blob/5.0.9/ChangeLog) - [Commits](https://github.com/aquynh/capstone/compare/5.0.7...5.0.9) --- updated-dependencies: - dependency-name: capstone dependency-version: 5.0.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
macho-diff
A command-line tool for visualizing instruction-level differences between Mach-O binaries. It uses LIEF to parse the Mach-O structure and capstone to disassemble and compare functions byte-by-byte and instruction-by-instruction.
Features
- Architecture Support: Supports ARM64, ARM, X86_64, and X86.
- Function Checksums: Quickly identifies modified functions via SHA-256 byte hashing.
- Instruction-Level Diff: Identifies the exact mnemonic and operand differences between the original and patched binaries directly in the CLI.
- Batch Patches: Automatically generates batch hexadecimal patches which ensure unique byte patterns for safe find-and-replace patching across binaries. The batch notes output is fully compatible with Amimod.
Installation
Assuming you are using uv (or standard pip):
git clone https://NohamR/macho-diff && cd macho-diff
uv sync
Usage
Run the tool by passing the source and patched Mach-O binaries:
uv run macho-diff <source_binary> <patched_binary>
uv run macho-diff <source_binary> <patched_binary> -b
Languages
Python
100%