Installing BinSync can be as simple as using pip in combination with our Python-based installer:
pip3 install binsync && binsync --install
If you are using BS with Ghidra, you must install using
pip3 install binsync[ghidra] for the extra dependencies.
If you are using Binary Ninja, and you don’t plan on developing BinSync, it’s recommended to install it through the
Binary Ninja plugin manager, which allows you to skip these install steps.
Installation is a two-step process because we need to first install the BinSync core library into your Python install, then we need to copy the plugin code to your respective decompiler. Using the above command is the simplest solution since it will open an assistant prompt that asks for decompiler paths. It looks something like:
$ binsync --install _____ _ _____ | __ |_|___| __|_ _ ___ ___ | __ -| | |__ | | | | _| |_____|_|_|_|_____|_ |_|_|___| |___| Now installing BinSync... Please input decompiler/debugger install paths as prompted. Enter nothing to either use the default install path if one exist, or to skip. IDA Plugins Path: ...
If you are not able to find the
binsync command, you might be able to access it with
python3 -m binsync.
NOTE: you must pip install binsync to the python interpreter used in your decompiler. If even that fails,
please jump to the Manual Install section.
If you were able to use the built-in Python script, skip this.
If you are unable to install using the earlier method, you are probably on Windows. In that case, installing BinSync is a two-step process:
- Install the core with the Python version associated with your decompiler:
pip3 install binsync
- Install the decompiler stub directly into your decompilers
For step 2, you copy (or link) the file associated with your decompiler in the
decompiler_stubs folder. As an example, for IDA you would copy only
decompiler_stubs/ida_binsync.py file, but for angr you would copy the entire
In the case of Ghidra, you would place everything in the
decompiler_stubs/ghidra_binsync into your
ghidra_scripts folder (usually found in
Unlocking your SSH Key
If you plan on using BinSync to pull and push to a BinSync repo, you need a SSH key that is associated with that repo. If you plan on only reading from the repo, you don’t need one. Since BinSync relies on Git for its headless-server and database, you must unlock your SSH key when BinSync is in use.
Install Validation and Usage
After you are done installing BinSync with the steps above, you should validate that the install works by syncing data from an example repo we have setup. You can find a tutorial to validate this install, with some basic usage, in the Install Validation section.
After validating your installation, it’s highly recommended that you read the Usage Guide, since BinSync can be rather complicated to use on your very first look at it.