Skip to main content

A Collaboration framework for binary analysis tasks.

Project description

BinSync

BinSync Logo

BinSync is a decompiler collaboration tool built on the Git versioning system to enable fined-grained reverse engineering collaboration regardless of decompiler. BinSync is built by mahaloz, the angr team, and the SEFCOM research lab. It's also due in large part to its use by the Shellphish hacking team.

All good decompilers share common objects called Reverse Engineering Artifacts (REAs). These REAs are the center of BinSync's syncing ability. Here are the supported REAs:

  • Function headers (symbol, args, type)
  • Stack Variables (symbol, type)
  • Structs
  • Enums
  • Comments

Note: all types support user-created types like structs.

Binja Sync

Join our discord below for more online help:

Discord

Quick Start

For all installs, it's best to use our two-part installer with Python:

pip3 install binsync && binsync --install 

BinSync is also available in the Binary Ninja plugin manager. If you plan on using BS with Ghidra, you must launch it in PyGhidra mode. If you plan on using extra BS features, like the ChatGPT User, install the package like this: pip3 install binsync[extras], which will install extra packages for support. For full install information, please read our quickstart docs.

For developers, install the package to be editable (-e) and make sure pip>=23.0.0.

Supported Platforms

  • IDA Pro: >= 8.4 (if you have an older version, use BinSync v4.10.1)
  • Binary Ninja: >= 2.4
  • angr-management: >= 9.0
  • Ghidra: >= 12.0 (PyGhidra mode)

All versions require Python >= 3.10 and Git installed on your system. Ghidra support is still very much in early stage, so only expect the minimal features like artifact name syncing and comments.

Decompiler Support Progress

Although we support the decompilers in the earlier section, not every decompiler is supported at the same level of syncing. To understand the difference between artifact support, pull, push, and auto push, read our decompiler use introduction.

IDA Pro

Operations     Function Headers     Stack Vars     Global Vars     Structs     Enums     Comments    
Symbols :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Types :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Pull :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Auto Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

IDA Sync

Binary Ninja

Operations     Function Headers     Stack Vars     Global Vars     Structs     Enums     Comments    
Symbols :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Types :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Pull :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Auto Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

Binja Sync

Ghidra

Operations     Function Headers     Stack Vars     Global Vars     Structs     Enums     Comments    
Symbols :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Types :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Pull :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:
Auto Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:

Ghidra Sync

angr-management

Operations     Function Headers     Stack Vars     Global Vars     Structs     Enums     Comments    
Symbols :white_check_mark: :white_check_mark: :x: :x: :x: :white_check_mark:
Types :white_check_mark: :white_check_mark: :x: :x: :x: :white_check_mark:
Pull :white_check_mark: :white_check_mark: :x: :x: :x: :white_check_mark:
Push :white_check_mark: :white_check_mark: :x: :x: :x: :white_check_mark:
Auto Push :white_check_mark: :white_check_mark: :x: :x: :x: :white_check_mark:

Scripting

For scripting please see Lib BinSync, which allows you to do all lifting and data manipulation in Python.

Sponsors

BinSync and its associated projects would not be possible without sponsorship. In no particular order, we'd like to thank all the organizations that have previously or are currently sponsoring one of the many BinSync projects.

NSF
DARPA
ARPA-H
RevEng AI

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binsync-5.12.0.tar.gz (133.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binsync-5.12.0-py3-none-any.whl (148.6 kB view details)

Uploaded Python 3

File details

Details for the file binsync-5.12.0.tar.gz.

File metadata

  • Download URL: binsync-5.12.0.tar.gz
  • Upload date:
  • Size: 133.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for binsync-5.12.0.tar.gz
Algorithm Hash digest
SHA256 ffb8960fceb7b3cb671b8af4c3254f4a702ce7a8ed85faa2163f9c26cdffcc0c
MD5 f288cf132e9b5a87ef5375a67460dbdc
BLAKE2b-256 759636fbc9500e3374170a607f31f4635e15d078de67041b32160bcb7ca7f0ab

See more details on using hashes here.

File details

Details for the file binsync-5.12.0-py3-none-any.whl.

File metadata

  • Download URL: binsync-5.12.0-py3-none-any.whl
  • Upload date:
  • Size: 148.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for binsync-5.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2b737e91da48a7542777e3a931169a0cd8deb9eb36b55c0702e11a5646e6468
MD5 eb94cb30fefb433eb8dc188e13f25f3f
BLAKE2b-256 db11f0a5509cc9e705b5f4e69806f46b03343e22e1976af4219bc7fc3f0b7c9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page