binsync is a free, open source collaboration & communication project written in Python and released under BSD-2-Clause. It has 745 GitHub stars, 62 forks and 59 open issues, and was last pushed 18 days ago. On this registry it ranks #45 of 57 tracked projects in Collaboration & Communication, with 5 head-to-head comparisons available.

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.

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:

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:

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: :white_check_mark:
Auto Push :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

angr-management

| Operations     | Function Headers     | Stack Vars     | Global Vars     | Structs     | Enums     | Comments     | |------------------------------------|------------------------------------------|------------------------------------|-------------------------------------|--------------------

readme truncated — read the full docs on github

Frequently asked questions

Is binsync free to use?

binsync is open source under the BSD-2-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does binsync do?

A reversing plugin for cross-decompiler collaboration, built on git.

What is binsync written in?

binsync is primarily written in Python. Its source is publicly available at https://github.com/binsync/binsync, and it has 745 GitHub stars.