No matching FAQ entries were found.
One Binary Ninja license includes support for Linux, MacOS, and Windows. Specifically:
Binary Ninja includes various levels of support for different CPUs. We break down support below for each architecture based on whether we support disassembly, lifting, inline-assembly editing (which also includes insertion of raw chunks of assembly), and C compilation (using our own built in compiler called SCC):
We current have loaders for the following file formats:
We currently demangle both GNU3 and MSVC symbols including C++11 using our own cross-platform library on OS X, Linux, and Windows.
Yup! Symbols can be automatically detected and loaded when an appropriate
.pdb exists in the same folder, when the file is available from a defined symbol server, or via the default Microsoft symbol server. More information available in the documentation.
We do. With the release of our decompiler, we not only raised the base price of the product, but introduced a 75% educational discount.
The educational discount is intended for either full-time students who can provide proof of full-time status, or for educational instructors who are using Binary Ninja in relevant courses or research.
Yes! While our primary credit card processor no longer supports it, we do have a manual method we can use to send an invoice and have it be paid via BTC. Just contact us and we can get you taken care of.
30 days before your support period ends, you'll receive an email including a link allowing you to renew. You should receive another email if you reach five days before the support period ends. You will also be notified via a small notification icon in the status bar of Binary Ninja itself if you are running an updated build and you have not disabled online activity.You can also renew up to six months early manually by visiting our renewal page and entering your serial number (open your license file in a text editor to get your serial number).
No, NET payment only makes sense in instances of physical shipments or situations where the software is not avilable for return or evaluation. As we offer several demos, and have a return-policy documented in this FAQ, we do not offer NET payment terms. Licenses are fulfilled via email upon receipt of payment.
Purchase orders and invoices are supported for purchases of more than 10 copies of the commercial license. Contact us for more information. Purchases or renewals of less than 10 licenses that require a PO, quote will be subject to a 10% manual processing fee.
As a small company, we have to involve outside legal counsel to verify any changed terms of purchase or license modifications. As a result, we are unable to offer this or fulfill other additional paperwork requirements for purchases below $10,000 USD.
Yes, we have worked with a number of resellers and we are happy to work with any reseller you may wish to use. Feel free to contact us if you would like specific recommendations for your region. We do not offer reseller discounts, and we encourage resellers to use the check-box on the checkout form to let us know the end-customer's email during checkout. This allows the end-user to receive download links, fresh licenses, and support without going through the reseller in the future.
Your personal or commercial named license is for your use on as many machines that you use running any operating system we support. Please note that you may only simultaneously run as many copies as you have purchased licenses.
If you'd like to purchase compute licenses for remote distributed processing, please contact us.
One year of support and updates is included with the original purchase.
When your support period ends, you may continue to use the last update you received indefinitely. You can also renew support for an additional year for 50% of the current purchase price.
Renewing a support license costs 50% of the current purchase price for that license.
Upgrades are available from lower-tier licenses as a pro-rated discount based on quarter-year increments.
If you're interested in upgrading an existing license, contact us.
We do allow users to transfer licenses from one email to another as long as you are within the included support period.
To change the user associated with a license, contact us.
Our licenses differentiate between commercial and personal usage as a way to make the product affordable for students and hobbyists while still enabling us to fund a company to make a product for a niche market.
So what do we consider commercial use? If your primary use of the product is for profit, then the use is commercial. For example, if you are using Binary Ninja on your work computer, it doesn't necessarily qualify as commercial use. If you're using it as a part of your job while at work though, then it probably is.
Here are two examples that may be helpful:
Those examples are obviously not exhaustive -- if you're not sure whether your use qualifies as commercial or non-commercial, contact us and ask.
We also apply a "de minimis" standard. If your use (running ads on Youtube videos, for example) makes you less money than 5 times the cost of a commercial license, we're happy to have you continue to use a personal license. Once you start making above this amount, we ask that you then upgrade.
We will refund purchases within 15 days of purchase if Binary Ninja doesn't meet your needs. To clarify what "doesn't meet your needs" means, this is for situations where there are bugs or problems with Binary Ninja that we are unable to resolve for you. Refunds are not guaranteed in other situations and we reserve the right to deny refunds where we believe the policy is being abused. Contact us for more information on the return process.
If you are not covered by support, unfortunately we do not have old installers available online. We try to make this very clear with the support expiring notification emails and ask users to backup the last installer they had access to as we cannot provide them once support has expired.
Binary Ninja is the only reverse engineering platform that has a built in compiler, decompiler, a fully exposed stack of Intermediate Languages with data flow value-set analysis, and fully extensible API. Most of those features are unique in isolation amongst our competitors, and the combination is far and a way unmatched.
If you have need for a dedicated shellcode compiler to extend, adapt, or modify a binary, our built in Shell Code Compiler is a unique tool that is seamlessly integrated into Binary Ninja.
The Binary Ninja Intermediate Language (BNIL) family of ILs allows for advanced analysis techniques on all architectures supported by Binary Ninja. Features like static data flow allow for querying known register values in the Low Level IL (LLIL), and higher level abstractions such as the Medium Level IL allow analysis on a form of the binary that abstracts away the stack, memory, and registers to variables. Not only that, but adding a new architecture supporting BNIL is easy to do for any third-party, allowing our powerful analysis framework to be applied even to new, unique platforms.
Unique among commercial products, the Binary Ninja API is open-sourced and fully exposed. All plugins and scripts have the full access to the core analysis engine that the main GUI leverages.
Our architecture is extensible by adding support for new file formats, architectures, and we have even open-sourced all existing core architectures.
Unique compared to open source products, Binary Ninja has a dedicated development and support team that can provide commercial support with multiple tiers of supplementary support available (contact us).
Absolutely. While Binary Ninja will try to connect online to check for updates and show the current change log, it works fine without it. You can even disable those features in settings you don't want to see the errors about failing to connect.
To download the latest updates, you can either use our license recovery system and select either the stable or development installer, or you can use a computer running the same version of Binary Ninja on the internet. The recommended process is to let the internet connected version update, then copy the install folder over the installed offline version. Finally, you can also use the version switcher plugin to automate the process if you like though this works best with a commercial or headless license.
In addition, our upcoming Enterprise version will be specifically designed to work well in offline networks. It will distribute updates to connected clients and even support different channels, enabling a team that's working offline to have a work-flow identical to being online.
This plugin supports a variety of debugging interfaces including GDB, LLDB, and Microsoft's dbgeng protocol. You can even extend it to add support for any other debugging interface.
BNIL (including HLIL decompilation) includes some unique syntax that we think makes for more readable display at all levels of IL and is documented here.
This is a conscious choice. HLIL has many advantages that C does not. It can show size operations more concisely than traditional casts, and it can show whether comparisons are signed or unsigned, both of which are annotations that C does not make available.
To help understand HLIL better, check out the BNIL documentation.
That said, we do plan on adding C syntax as an output option eventually as there are many cases where exact C-syntax may be desired. You may also be interested in some display settings that can make HLIL look more like C.
SCC is short for "shell code compiler". It's a custom C compiler designed to create small shellcode payloads with minimal file size. It includes a simple LIBC that is statically compiled / inlined for very small file sizes and cross-platform. SCC is convenient for testing exploitation or overwriting built-in functionality of a program with a C replacement. Want a function to always return a particular structure or value? You could do it in assembly, but it's often easier in C.
If you are testing obfuscation technique analysis, SCC also supports a number of built in obfuscations such as junk code insertion, different variables as the stack pointer, etc.
Definitely. The reason we chose the tag-line "a reverse engineering platform" is that no GUI reverse engineering tool will ever magically solve all reverse engineering problems. Yes, the human has to be a part of the analysis loop not only though interactive changes, but also through a solid API that can be extended and built on by the community. To that end, we've built Binary Ninja around a modular core with extensive use of plugins. The UI that you use now when you run Binary Ninja uses the same API that is available to any plugin. For any of the commercial licenses of Binary Ninja, this also means that Binary Ninja is designed to work well in a remote, headless fashion for larger scale analysis projects. We even support "compute" or "headless" licenses for distributed headless analysis.
Binary Ninja is primarily written in C++11, with C, C++, Python APIs, and Rust APIs. The API itself as well as sample plugins are available under an MIT license on the binaryninja-api repository.
Yes, collaboration is currently in testing for our forthcoming enterprise edition. If you're interested in being a part of our enterprise beta test, contact us for more information.
Yes, our price has changed several times. We launched in mid-2016 with an introductory price that changed in Sept of 2017, and when we released our decompiler we increased the price as opposed to charging separately for the decompiler. Note that the decompiler is included for ALL architectures with one purchase, and even supports third-party architectures created by the community.
If you request a formal quote, we typically will guarantee pricing for 30 days.
When we change the price, existing customers continue to receive updates at no charge for as long as their support is active. Once their support is ending, they may choose to renew their support and receive another year of updates for 50% of the current purchase-price.
Binary Ninja connects back to our update infrastructure to receive change logs, notification of new versions, and checking if license support has been extended. You're more than welcome to block that update mechanism, but be advised that we only offer support for the latest version.
We do not watermark our binaries in any way. This is partially due to a desire to use a streamlined update process that takes advantage of global CDN infrastructure for faster automatic updates, but partially because we are busy trying to build features that make the product better.
Please don't pirate Binary Ninja--we know we're selling to customers more than capable of cracking our software, and we have no desire to constantly waste time tying to stop skilled reverse engineers. Instead, may we recommend crackmes.one if you're looking for a challenge. Please support us by encouraging others to purchase copies if they find it helpful.
If you cannot afford Binary Ninja, we've made Binary Ninja Cloud available for free!
This website contains SHA256 hashes you can use to verify your downloads. In addition, our Mac OS and Windows binaries are digitally signed.
We have no official bug bounty at this time. That said, we're always grateful for bug reports and encourage security reports.
Not at this time, though we'd love to do that long term. As usual, we highly recommend the use of additional security layers when analyzing suspect binaries, especially malware. One named license includes support for Windows, Linux, and Mac OS so it's easy to run Binary Ninja in a VM for added protection but still run it natively on a different OS when needed.
Binary Ninja is made by Vector 35, a company focused on building reverse engineering tools, video games, and video games built on top of reverse engineering tools.
The short answer is no. We released a one-off open source version of a private internal tool as a prototype.
That prototype was originally a private CTF team tool that we formed Vector 35 to re-build as a commercial product. When doing that, we wanted to give back to the community as much as we could while still being commercially viable, so a one-off version of the previous python prototype was released under GPLv2.
The prototype doesn't share code with the current commercial offering. While many of the UI decisions and general design choices carried over, the prototype is a distinct codebase (in a different programming language no-less).
If your support is not current, unfortunately we do not have old installers available online. We try to make this very clear with the support expiring notification emails and ask users to backup the last installer they had access to as we cannot provide them once support has expired.
Well, you already kinda answered that, didn't you? We agree though!
Just because you put a question mark on it doesn't make it a question. Still, we want to address any feedback which is why we have the embedded chat box floating on the bottom of this page. If we're awake and online we're usually pretty quick to respond, if not, just leave your question there along with your email and we'll get back to you. Or, you can hop on to our public slack and ask there as we have a very active community there. Additionally, you may find many other more technical questions and answers on our GitHub Discussions page.