-
Update to the latest development build of Binary Ninja
- Follow this guide to do so
-
Clone
binaryninja-apiand checkout to the corresponding commit used to build the version of Binary Ninja you are running- If you updated to the latest dev build of Binary Ninja, then you can checkout the api repo to the latest dev as well
- A more robust approach is to find the file
api_REVISION.txtinBN_INSTALLATION_FOLDER/Resources
git clone --recurse-submodules https://github.com/Vector35/binaryninja-api.git
cd binaryninja-api
git checkout dev
# or git checkout commit_hash-
Download LLDB development build for your OS at https://github.com/Vector35/lldb-artifacts/releases/latest - make sure that the correct LLDB version is downloaded (
grep 'LLVM_VERSION ' core/CMakeLists.txtcan help)- Extract the zip archive to
~/libclang
- Extract the zip archive to
-
Download Qt development build for your OS at https://github.com/Vector35/qt-artifacts/releases/latest.
- Extract the zip archive to
~/Qt
- Extract the zip archive to
-
Build the debugger
FlatBuffers (needed for
X2WinRpcAdapter's wire protocol) is vendored as a git submodule undervendor/and built as part of this project's own CMake configure/build -- no separate install step needed, just make sure submodules are cloned (--recurse-submodulesbelow, orgit submodule update --init --recursiveafter the fact).
# Get the source
git clone --recurse-submodules https://github.com/Vector35/debugger.git
# Do an out-of-source build
mkdir -p build
cd build
# Build it
cmake -DBN_API_PATH=../binaryninja-api -DBN_INSTALL_DIR=/path/to/binaryninja/installation ..
makeWhile the code is compiling, it's a good time to check the Binary Ninja slack for any updates!
The build artifacts will be in the folder out. You should find two files libdebuggercore and libdebuggerui, and two folders debugger (that contains the Python code) and lldb.
- Run the debugger
- Open Binary Ninja, disable the setting
corePlugins.debuggerso the debugger that comes with Binary Ninja is not loaded - Close Binary Ninja
- Copy everything in the
outfolder to the user plugin folder -cp -r out/plugins/* ~/.binaryninja/plugins/ - Set the environment variable
BN_STANDALONE_DEBUGGER=1 - Launch BinaryNinja
- Open Binary Ninja, disable the setting
Windows builds include windows-debug-server.exe for Windows user-mode remote debugging from Linux, macOS, or Windows.
It is built and packaged with the debugger; it is not built on Linux or macOS. To build just the server from an already
configured Windows build directory, run:
cmake --build build --config RelWithDebInfo --target x2winstubThe internal CMake target remains x2winstub, but the executable is named windows-debug-server.exe.
In a standalone Ninja build it is under build/out/plugins; multi-configuration generators such as Visual Studio
place it under build/out/plugins/RelWithDebInfo. Internal Binary Ninja builds place it in BN_CORE_PLUGIN_DIR.
The Windows package includes the executable in its plugins directory. Copy it to the Windows host to run it;
running the server does not require installing Binary Ninja there.
See the Windows Remote guide for connection and launch steps, and integration test instructions for testing it locally on Windows.
- On Windows, building the debugger in Debug mode may cause obscure bugs since the debug ABI of MSVC can be different from that of the release build.
It is recommended to build with
RelWithDebInfoon Windows.