Skip to content

meerkatone/rust_diff

Repository files navigation

Binary Diffing Plugin for Binary Ninja

A high-performance binary diffing plugin for Binary Ninja that compares functions between two binaries using advanced structural and semantic analysis. Built with Rust for performance and Python for Binary Ninja integration.

Features

  • Multiple export formats: JSON, CSV, SQLite, HTML reports
  • Optional Qt GUI: Interactive results table with sorting and filtering
  • Cross-platform: Supports Darwin, Linux, and Windows

Installation

Prerequisites

  • Binary Ninja (Commercial or Personal license latest dev build)
  • Rust toolchain (latest stable)
  • Binary Ninja API development headers
  • Python 3.x
  • Optional: PySide6 or PySide2 (for GUI features)

Build and Install

  1. Clone this repository:

    git clone https://github.com/meerkatone/rust_diff.git
    cd rust_diff
  2. Set up Binary Ninja environment (if needed):

    export BINJA_DIR="/path/to/your/binaryninja/installation"
  3. Build the plugin:

# Clone and build the Rust library
cargo build --release

If the plugin fails to load due to an "This plugin was built for an outdated core ABI (XXX). Please rebuild the plugin with the latest API (XXX)." Please use the following to update the dependencies:
cargo update && cargo build --release

# Install GUI dependencies (optional)
pip install PySide6
# or
python install_pyside.py
  1. Copy the compiled plugin to Binary Ninja's plugin directory:

    # macOS
    cp target/release/librust_diff.dylib ~/Library/Application\ Support/Binary\ Ninja/plugins/
    
    # Linux
    cp target/release/librust_diff.so ~/.binaryninja/plugins/
    
    # Windows
    copy target\release\librust_diff.dll %APPDATA%\Binary Ninja\plugins\
  2. Restart Binary Ninja to load the plugin

Usage

  1. Open a binary in Binary Ninja
  2. Go to Tools → Binary Diffing (Rust)
  3. Select a target BNDB file to compare against
  4. The plugin will analyze both binaries and display results

About

Binary Diffing Plugin for Binary Ninja

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published