Binary Ninja¶
Third Party Open Source¶
Vector 35 is grateful for the following open source packages that are used in Binary Ninja directly or indirectly:
- Documentation
- breathe-rtd-theme (breathe-rtd-theme license - MIT)
- breathe (breathe license - BSD)
- doxygen (doxygen license - GPLv2)
- mkdocs-material (mkdocs-material License - BSD)
- mkdocs (mkdocs license - BSD)
- sphinx (sphinx license - BSD and others)
The previous tools are used in the generation of our documentation, but are not distributed themselves and are merely listed here in acknowledgement for the value they provide.
-
UI
- dejavusanscode (dejavusanscode license - multiple open licenses)
- opensans (opensans license - Apache 2.0)
- qt (qt license - LGPLv3 / note, please see our qt build instructions below)
- libxcb (libxcb license - MIT)
- sourcecodepro (sourcecodepro license - SIL open font license)
- rlcompleter (python license - Python Software Foundation License 2)
- QCheckboxCombo (QCheckboxCombo License - MIT)
- NotoColorEmoji (NotoColorEmoji License - SIL open font license)
-
Core
- abseil-cpp (abseil-cpp license - Apache 2.0)
- jsoncpp (jsoncpp - Public Domain / MIT)
- llvm (llvm license - BSD-style)
- lzf (lzf license - BSD)
- python (python license - Python Software Foundation License 2 -- a Python 3.10 built without GPL components is currently shipped with Windows builds only, other platforms leverage existing Python installs)
- sqlite (sqlite license - public domain)
- zlib (zlib license - zlib license)
- rapidjson (rapidjson license - MIT)
- jemalloc (jemalloc license - 2-clause BSD)
- curl (curl license - MIT)
- xxHash (xxHash License - 2-clause BSD)
- botan (botan license - 2-clause BSD)
- [fmt] ([fmt license] - MIT)
- dtl (dtl license - BSD)
- JSON for Modern C++ (JSON for Modern C++ license - MIT)
- zstd (zstd license - BSD)
-
Core (Rust)
- adler (adler license - APACHE 2.0 / MIT)
- adler2 (adler2 license - APACHE 2.0 / MIT)
- aead (aead license - APACHE 2.0 / MIT)
- aes (aes license - APACHE 2.0 / MIT)
- aes-gcm (aes-gcm license - APACHE 2.0 / MIT)
- aho-corasick (aho-corasick license - MIT / Unlicense)
- anyhow (anyhow license - APACHE 2.0 / MIT)
- async-compression (async-compression license - APACHE 2.0 / MIT)
- autocfg (autocfg license - APACHE 2.0 / MIT)
- base64 (base64 license - APACHE 2.0 / MIT)
- bindgen (bindgen license - MIT)
- bitflags (bitflags license - APACHE 2.0 / MIT)
- block-buffer (block-buffer license - APACHE 2.0 / MIT)
- byteorder (byteorder license - MIT / Unlicense)
- bytes (bytes license - MIT)
- cc (cc license - APACHE 2.0 / MIT)
- cexpr (cexpr license - APACHE 2.0 / MIT)
- cfg-if (cfg-if license - APACHE 2.0 / MIT)
- cipher (cipher license - APACHE 2.0 / MIT)
- clang (clang license - APACHE 2.0)
- clang-sys (clang-sys license - APACHE 2.0)
- code-fuzzy-match (code-fuzzy-match license - MIT)
- core-foundation (core-foundation license - APACHE 2.0 / MIT)
- core-foundation-sys (core-foundation-sys license - APACHE 2.0 / MIT)
- cpufeatures (cpufeatures license - APACHE 2.0 / MIT)
- crc (crc license - APACHE 2.0 / MIT)
- crc-catalog (crc-catalog license - APACHE 2.0 / MIT)
- crc32fast (crc32fast license - APACHE 2.0 / MIT)
- crypto-common (crypto-common license - APACHE 2.0 / MIT)
- ctr (ctr license - APACHE 2.0 / MIT)
- cty (cty license - APACHE 2.0 / MIT)
- curl (curl license - MIT)
- curl-sys (curl-sys license - MIT)
- data-encoding (data-encoding license - MIT)
- digest (digest license - APACHE 2.0 / MIT)
- displaydoc (displaydoc license - APACHE 2.0 / MIT)
- either (either license - APACHE 2.0 / MIT)
- encoding_rs (encoding_rs license - APACHE 2.0 / MIT)
- equivalent (equivalent license - APACHE 2.0 / MIT)
- errno (errno license - APACHE 2.0 / MIT)
- fastrand (fastrand license - APACHE 2.0 / MIT)
- flate2 (flate2 license - APACHE 2.0 / MIT)
- fnv (fnv license - APACHE 2.0 / MIT)
- form_urlencoded (form_urlencoded license - APACHE 2.0 / MIT)
- futures (futures license - APACHE 2.0 / MIT)
- futures-channel (futures-channel license - APACHE 2.0 / MIT)
- futures-core (futures-core license - APACHE 2.0 / MIT)
- futures-executor (futures-executor license - APACHE 2.0 / MIT)
- futures-io (futures-io license - APACHE 2.0 / MIT)
- futures-macro (futures-macro license - APACHE 2.0 / MIT)
- futures-sink (futures-sink license - APACHE 2.0 / MIT)
- futures-task (futures-task license - APACHE 2.0 / MIT)
- futures-timer (futures-timer license - APACHE 2.0 / MIT)
- futures-util (futures-util license - APACHE 2.0 / MIT)
- generic-array (generic-array license - MIT)
- getopts (getopts license - APACHE 2.0 / MIT)
- getrandom (getrandom license - APACHE 2.0 / MIT)
- ghash (ghash license - APACHE 2.0 / MIT)
- glob (glob license - APACHE 2.0 / MIT)
- h2 (h2 license - MIT)
- hashbrown (hashbrown license - APACHE 2.0 / MIT)
- http (http license - APACHE 2.0 / MIT)
- http-body (http-body license - MIT)
- httparse (httparse license - APACHE 2.0 / MIT)
- httpdate (httpdate license - APACHE 2.0 / MIT)
- hyper (hyper license - MIT)
- hyper-rustls (hyper-rustls license - APACHE 2.0 / MIT / ISC)
- icu_collections (icu_collections license - MIT)
- icu_locid (icu_locid license - MIT)
- icu_locid_transform (icu_locid_transform license - MIT)
- icu_locid_transform_data (icu_locid_transform_data license - MIT)
- icu_normalizer (icu_normalizer license - MIT)
- icu_normalizer_data (icu_normalizer_data license - MIT)
- icu_properties (icu_properties license - MIT)
- icu_properties_data (icu_properties_data license - MIT)
- icu_provider (icu_provider license - MIT)
- icu_provider_macros (icu_provider_macros license - MIT)
- idna (idna license - APACHE 2.0 / MIT)
- idna_adapter (idna_adapter license - APACHE 2.0 / MIT)
- indexmap (indexmap license - APACHE 2.0 / MIT)
- input_buffer (input_buffer license - APACHE 2.0 / MIT)
- ipnet (ipnet license - APACHE 2.0 / MIT)
- itertools (itertools license - APACHE 2.0 / MIT)
- itoa (itoa license - APACHE 2.0 / MIT)
- keyring (keyring license - APACHE 2.0 / MIT)
- lazy_static (lazy_static license - APACHE 2.0 / MIT)
- libc (libc license - APACHE 2.0 / MIT)
- libloading (libloading license - MIT)
- libz-sys (libz-sys license - APACHE 2.0 / MIT)
- litemap (litemap license - MIT)
- lock_api (lock_api license - APACHE 2.0 / MIT)
- log (log license - APACHE 2.0 / MIT)
- lzma (lzma license - WTFPL)
- lzma-rs (lzma-rs license - MIT)
- machine-uid (machine-uid license - MIT)
- markdown (markdown license - MIT)
- memchr (memchr license - MIT / Unlicense)
- mime (mime license - MIT)
- mime_guess (mime_guess license - MIT)
- minimal-lexical (minimal-lexical license - APACHE 2.0 / MIT)
- miniz_oxide (miniz_oxide license - APACHE 2.0 / MIT / ZLIB)
- mio (mio license - MIT)
- nom (nom license - MIT)
- num-bigint (num-bigint license - APACHE 2.0 / MIT)
- num-integer (num-integer license - APACHE 2.0 / MIT)
- num-traits (num-traits license - APACHE 2.0 / MIT)
- num_cpus (num_cpus license - APACHE 2.0 / MIT)
- once_cell (once_cell license - APACHE 2.0 / MIT)
- opaque-debug (opaque-debug license - APACHE 2.0 / MIT)
- parking_lot (parking_lot license - APACHE 2.0 / MIT)
- parking_lot_core (parking_lot_core license - APACHE 2.0 / MIT)
- pem (pem license - MIT)
- percent-encoding (percent-encoding license - APACHE 2.0 / MIT)
- pin-project (pin-project license - APACHE 2.0 / MIT)
- pin-project-internal (pin-project-internal license - APACHE 2.0 / MIT)
- pin-project-lite (pin-project-lite license - APACHE 2.0 / MIT)
- pin-utils (pin-utils license - APACHE 2.0 / MIT)
- pkg-config (pkg-config license - APACHE 2.0 / MIT)
- polyval (polyval license - APACHE 2.0 / MIT)
- ppv-lite86 (ppv-lite86 license - APACHE 2.0 / MIT)
- prettyplease (prettyplease license - APACHE 2.0 / MIT)
- proc-macro-crate (proc-macro-crate license - APACHE 2.0 / MIT)
- proc-macro2 (proc-macro2 license - APACHE 2.0 / MIT)
- pulldown-cmark (pulldown-cmark license - MIT)
- pulldown-cmark-escape (pulldown-cmark-escape license - MIT)
- quote (quote license - APACHE 2.0 / MIT)
- rand (rand license - APACHE 2.0 / MIT)
- rand_chacha (rand_chacha license - APACHE 2.0 / MIT)
- rand_core (rand_core license - APACHE 2.0 / MIT)
- rational (rational license - MIT)
- regex (regex license - APACHE 2.0 / MIT)
- regex-automata (regex-automata license - APACHE 2.0 / MIT)
- regex-syntax (regex-syntax license - APACHE 2.0 / MIT)
- relative-path (relative-path license - APACHE 2.0 / MIT)
- reqwest (reqwest license - APACHE 2.0 / MIT)
- ring (ring license - ISC / MIT)
- rot13 (rot13 license - APACHE 2.0 / MIT)
- rstest (rstest license - APACHE 2.0 / MIT)
- rstest_macros (rstest_macros license - APACHE 2.0 / MIT)
- rustc-hash (rustc-hash license - APACHE 2.0 / MIT)
- rustc_version (rustc_version license - APACHE 2.0 / MIT)
- rustix (rustix license - APACHE 2.0 / MIT)
- rustls (rustls license - APACHE 2.0 / MIT / ISC)
- rustls-native-certs (rustls-native-certs license - APACHE 2.0 / MIT / ISC)
- rustls-pemfile (rustls-pemfile license - APACHE 2.0 / MIT / ISC)
- rustls-webpki (rustls-webpki license - MIT)
- ryu (ryu license - Apache 2.0)
- scc (scc license - MIT)
- scopeguard (scopeguard license - APACHE 2.0 / MIT)
- sct (sct license - APACHE 2.0 / MIT / ISC)
- sdd (sdd license - MIT)
- security-framework (security-framework license - APACHE 2.0 / MIT)
- security-framework-sys (security-framework-sys license - APACHE 2.0 / MIT)
- semver (semver license - APACHE 2.0 / MIT)
- serde (serde license - APACHE 2.0 / MIT)
- serde_derive (serde_derive license - APACHE 2.0 / MIT)
- serde_json (serde_json license - APACHE 2.0 / MIT)
- serde_urlencoded (serde_urlencoded license - APACHE 2.0 / MIT)
- serial_test (serial_test license - MIT)
- serial_test_derive (serial_test_derive license - MIT)
- sha1 (sha1 license - APACHE 2.0 / MIT)
- shlex (shlex license - APACHE 2.0 / MIT)
- slab (slab license - MIT)
- smallvec (smallvec license - APACHE 2.0 / MIT)
- socket2 (socket2 license - APACHE 2.0 / MIT)
- spin (spin license - MIT)
- stable_deref_trait (stable_deref_trait license - APACHE 2.0 / MIT)
- subtle (subtle license - MIT)
- syn (syn license - APACHE 2.0 / MIT)
- sync_wrapper (sync_wrapper license - MIT)
- synstructure (synstructure license - MIT)
- system-configuration (system-configuration license - APACHE 2.0 / MIT)
- system-configuration-sys (system-configuration-sys license - APACHE 2.0 / MIT)
- tempfile (tempfile license - APACHE 2.0 / MIT)
- thiserror (thiserror license - APACHE 2.0 / MIT)
- thiserror-impl (thiserror-impl license - APACHE 2.0 / MIT)
- tinystr (tinystr license - MIT)
- tinyvec (tinyvec license - APACHE 2.0 / MIT / ZLIB)
- tinyvec_macros (tinyvec_macros license - APACHE 2.0 / MIT / ZLIB)
- tokio (tokio license - MIT)
- tokio-macros (tokio-macros license - MIT)
- tokio-rustls (tokio-rustls license - APACHE 2.0 / MIT)
- tokio-tungstenite (tokio-tungstenite license - MIT)
- tokio-util (tokio-util license - MIT)
- toml_datetime (toml_datetime license - MIT)
- toml_edit (toml_edit license - MIT)
- tower-service (tower-service license - MIT)
- tracing (tracing license - MIT)
- tracing-attributes (tracing-attributes license - MIT)
- tracing-core (tracing-core license - MIT)
- try-lock (try-lock license - MIT)
- tungstenite (tungstenite license - APACHE 2.0 / MIT)
- typenum (typenum license - MIT)
- unicase (unicase license - APACHE 2.0 / MIT)
- unicode-bidi (unicode-bidi license - APACHE 2.0 / MIT)
- unicode-ident (unicode-ident license - APACHE 2.0 / MIT)
- unicode-normalization (unicode-normalization license - APACHE 2.0 / MIT)
- unicode-width (unicode-width license - APACHE 2.0 / MIT)
- universal-hash (universal-hash license - APACHE 2.0 / MIT)
- untrusted (untrusted license - ISC)
- url (url license - APACHE 2.0 / MIT)
- utf-8 (utf-8 license - APACHE 2.0 / MIT)
- utf16_iter (utf16_iter license - APACHE 2.0 / MIT)
- utf8_iter (utf8_iter license - APACHE 2.0 / MIT)
- vcpkg (vcpkg license - APACHE 2.0 / MIT)
- version_check (version_check license - APACHE 2.0 / MIT)
- want (want license - MIT)
- webpki (webpki license - ISC)
- webpki-roots (webpki-roots license - APACHE 2.0 / MIT)
- websocket (websocket license - MIT)
- winnow (winnow license - MIT)
- write16 (write16 license - APACHE 2.0 / MIT)
- writeable (writeable license - UNICODE V3)
- x509-signature (x509-signature license - APACHE 2.0 / MIT)
- yoke (yoke license - UNICODE V3)
- yoke-derive (yoke-derive license - UNICODE V3)
- zerocopy (zerocopy license - APACHE 2.0 / MIT)
- zerocopy-derive (zerocopy-derive license - APACHE 2.0 / MIT)
- zerofrom (zerofrom license - UNICODE V3)
- zerofrom-derive (zerofrom-derive license - UNICODE V3)
- zerovec (zerovec license - UNICODE V3)
- zerovec-derive (zerovec-derive license - UNICODE V3)
-
Other
- yasm (yasm license - 2-clause BSD) used for assembling x86 and x64
- xed (xed license - Apache License 2.0) used for disassembling x86, x64, and x16
- capstone (capstone license - 3-clause BSD) used in the PPC architecture module as an example of how to wrap an external disassembler
- flatbuffer (flatbuffer license - Apache License 2.0) used in the binary format for the function fingerprint libraries
- deprecation (deprecation license - Apache License 2.0) used in the Python API for marking deprecated functions/properties/classes
First Party Open Source¶
- Several components of Binary Ninja developed by Vector 35 directly are released under open source licenses, noted as below:
- API / Documentation (api license - MIT) APIs (Python, C, C++) and Documentation (User, API, etc)
- Rust API (rust api license - Apache License 2.0)
- LIB Files (api license - MIT) .lib files included with the native windows builds of Binary Ninja are released under the same MIT license as the API itself, distinct from the standard EULA
- Views (views license - Apache License 2.0) Binary views included with the product
- Architectures (architectures license - Apache License 2.0) Architecture support included with the product
- DWARF Import - (dwarf import license - MIT)
- DWARF Export - (dwarf export license - MIT)
- IDB Import - (idb import license - MIT)
Building Qt¶
Binary Ninja uses Qt 6.8 under an LGPLv3 license which requires that we host the original sources used to build Qt for our application along with instructions on how that source may be re-built and can replace the version of Qt shipped with Binary Ninja.
Please note that we offer no support for running Binary Ninja with modified Qt libraries.
- Follow the installation requirements on the Building Qt 6 from Git page.
- Download the Qt 6.8.2 tarball from binary.ninja. The Qt code has a patch applied but is ABI compatible with the official Qt release.
- Next, build Qt with the qt-build repository. Alternatively, build Qt using the aforementioned instructions.
- On macOS, you will need to disable the code-signing signature since it would otherwise prevent changes to binaries or shared libraries.
- Finally, replace the built libraries:
- On macOS, replace the
QtCore.framework
,QtDBus.framework
,QtGui.framework
,QtNetwork.framework
,QtPrintSupport.framework
,QtWidgets.framework
folders inside of/Applications/Binary Ninja.app/Contents/Frameworks
- On Windows, replace the
Qt6Core.dll
,Qt6Gui.dll
,Qt6Network.dll
, andQt6Widgets.dll
files inC:\Program Files\Vector35\BinaryNinja\
. - On Linux, replace the
libQt6Core.so.6
,libQt6DBus.so.6
,libQt6Gui.so.6
,libQt6Network.so.6
,libQt6Widgets.so.6
,libQt6XcbQpa.so.6
files wherever Binary Ninja was extracted.
- On macOS, replace the