A Collaboration framework for binary analysis tasks.
Project description
BinSync
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
- Comments
Note: all types support user-created types like structs. DISCLAIMER: The current version of BinSync is highly developmental. If you are looking for a highly stable version with full support for the listed decompilers, check back in a few months.
Join our discord below for more online help:
Quick Start
For all installs, it's best to use our two-part installer with Python:
pip3 install binsync && binsync --install
For full install information, please read our Quickstart Docs
Supported Platforms
- IDA Pro: >= 7.3
- Binary Ninja: >= 2.4
- angr-management: >= 9.0
- Ghidra: >= 10.1
All versions require Python >= 3.4 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 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Types | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Pull | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Push | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
Auto Push | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Binary Ninja
Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
---|---|---|---|---|---|---|
Symbols | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Types | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Pull | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Push | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Auto Push | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Ghidra
Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
---|---|---|---|---|---|---|
Symbols | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Types | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Pull | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Push | :x: | :x: | :x: | :x: | :x: | :x: |
Auto Push | :x: | :x: | :x: | :x: | :x: | :x: |
angr-management
Operations | Function Headers | Stack Vars | Global Vars | Structs | Enums | Comments |
---|---|---|---|---|---|---|
Symbols | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Types | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Pull | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Push | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
Auto Push | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
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
Built Distribution
Hashes for binsync-3.1.0-py3-none-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdb15a3beed48c1d5ae38182c59009c1e3a0e5b6fae4169fbd31bb304ba78586 |
|
MD5 | 6891ea99e3b4bfe91deb530d6d3a9472 |
|
BLAKE2b-256 | a3edb4a96a84589805f3719b9daaf82ce97c4967246f43ea07508c6f62bf8f4c |