One Binary Ninja license includes support for Linux, MacOS, and Windows. Specifically:
We generally try to support the latest version of each platform, plus the most recent long-term supported version prior to that.
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, decompilation, inline-assembly editing (which also includes insertion of raw chunks of assembly), and C compilation (using our own built in compiler SCC):
We current have loaders for the following file formats:
Binary Ninja requires Python 3.8 or above as of stable build 3.2.
Python2 was officially end-of lifed on January 1, 2020. The last stable build of Binary Ninja which supported it was 2.2.
We currently demangle both GNU3 and MSVC symbols including C++11 using our own cross-platform library on macOS, 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.
Yes. Currently via a plugin (also available via the built-in plugin manager. Work is currently underway to convert this to a native feature that will automatically be available on load for supported file types.
The educational discount is intended for either full-time students (of any age!) who can provide proof of full-time status, or for educational instructors who are using Binary Ninja in relevant courses or research at a non-profit university or organization.
No. When you purchase a Binary Ninja license, you receive the latest version of Binary Ninja plus 1 year of support and upgrades. After your license expires, you may continue using any of the versions of Binary Ninja that were available while you had active support. New versions of Binary Ninja, however, will no longer work with your license.
As an example, if you bought a license at the launch of version 2.4, you would be able to use Binary Ninja 2.4, 3.0, and 3.1 (plus any dev builds released during that time). Binary Ninja 3.2, however, was not released within a year of Binary Ninja 2.4. In order to use Binary Ninja 3.2, you will need to renew your license (or purchase a new one).
Additionally, please remember that active support includes installer downloads. We do not keep anything but the latest installers online and available for download.
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 online and have not disabled online activity.
Renewals are available for approximately a month after support ends. If you miss this renewal window your license will not be eligible for renewal and you will need to purchase a new license to resume support.
You can also renew up to five years early before you receive any notification by visiting our renewal page and entering your serial number (open the about dialog to get your serial number). Note that this option does require you to submit each year as a separate transaction. To pay for multiple years or licenses in a single transaction, contact support.
If you miss the renewal window (from six months before your support ends to approximately one month after it ends), you will lose access to the following:
Note that you may still run the previous versions you have downloaded in perpetuity. It is for this reason we strongly recommend you backup your installers before you lose support! You can get a copy of the latest installers for your valid license at any time by using the license and installer recovery page.
The demo is not upgraded. To upgrade from the demo to a full version, simply uninstall the demo and re-install the new version you received after purchasing.
If you have a redemption code (from a sponsored event, give-away, or a pre-purchase), you'll need to head over to the redeem page to convert your code into a full license.
Our headless licenses are intended for customers that want to add Binary Ninja to an automated workflow or set up multiple copies of Binary Ninja for batch processing. These aren't easy to do within the license terms of our named licenses, and customers won't be using the UI in these situations, so we offer headless licenses to cover this use-case. If you simply want headless functionality for your own testing, our Commercial licenses include this functionality and there is no reason to purchase a separate, add-on headless license.
Headless is a Linux-only computer license and sold as an add-on to an existing purchase. This license is not intended to be used as part of containerized cloud infrastructure, but we do offer some special pricing for a headless license that will support that use-case for internal build processes and tooling. Please contact us via email or via chat to purchase a headless license.
It's simple: Enterprise has more complicated licensing than our Non-Commercial and Commercial versions. Not only are there more choices for the licenses themselves (because Enterprise supports floating licenses) and the software in general (since you also need a minimum of one server license), but the pricing changes more frequently due to available discounts (such as for large purchases). It's far easier for us to manage Enterprise on a case-by-case basis than it is for us to extend our existing sales infrastructure to cover it.
We promise to make the process as painless as we can. We've spent plenty of time ordering Enterprise software ourselves and know it's not always easy. So, if you're interested, please don't hesitate to contact us via email or via chat.
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 or purchases of an Enterprise license. Contact us for more information. For purchases or renewals of less than 10 licenses that require a PO, the 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. 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 Non-Commercial (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.
|License Type||Multiple Computers||Multiple People|
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 for your commercial or non-commercial licenses for an additional year for 50% of the current purchase price (enterprise has a different renewal system).
If you choose not to purchase updated support though, please make sure to backup your old installers. Older installers are not online and no downloads are available for users outside of support.
Renewing a support license for named, headless, or commercial licenses costs 50% of the current purchase price for that license (enterprise has different renewal pricing).
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% (for non-commercial and commercial licenses -- enterprise pricing does not follow the same schedule) of the current purchase-price.
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.
As long as your license is under active support, yes!
To change the email associated with a license, contact us. Just let us know your old email and your new email. We'll need to either email your old email address to confirm the change and prevent license theft, or if you no longer have access to it, we'll need some other verification we will coordinate via email.
We allow customers to transfer commercial named licenses from one user to another as long as the license is under active support (one year of support is included with purchase).
Non-commercial licenses may update their email address during active support, but they may not transfer the license to a different person.
To change the user associated with a license, contact us.
Our licenses differentiate between commercial and non-commercial (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 non-commercial (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).
Our Enterprise edition provides a centralized server enabling teams to collaborate on a single project database with versioned check-ins. It is the only product offering of its kind that offers real-time chat, which is stored directly in the project database for later review. It also supports hosting offline client updates for teams working in closed environments.
Floating licenses are managed by the Enterprise server and can be checked out by an authenticated Enterprise client. Floating licenses are either automatically checked out while the client is running, or explicitly checked out for a specific duration chosen by the user. Once a license is checked out, only that user on that same host can use the license until it expires or is checked back in.
The base Enterprise product includes 3 floating licenses. More licenses can be purchased at any time with no maximum limit. Floating licenses added before the last 3 months of the current support period will be pro-rated and match the support expiration date of the original purchase. Floating licenses added in the last 3 months of a support period will require the original server and floating licenses to be extended a full year and the new license(s) will be pro-rated to match.
Floating licenses are checked out for a specific duration with an expiration time. Once that expiration time is reached, the license can be re-issued without needing the original client to check it in. In the unlikely event that the lost license has a very long duration left on it, a server administrator may cancel one checked-out license once every seven days from the administrative interface. For extenuating circumstances, contact support.
Officially, the Enterprise server supports being hosted on Ubuntu 20.04. Hosting on Windows 10 and 11 is also supported but is currently considered to be a "preview" feature.
Unofficially, the Enterprise server is hosted in Docker containers and should work on any host platform with Docker Engine 19.03+ and Docker Compose 1.27+.
Please contact us if you need to host an Enterprise server in an environment that cannot run Docker.
The Enterprise server itself is fairly lightweight on resource usage. We expect the following to be sufficient for most use-cases:
Disk space and network connection requirements will vary heavily based on usage. Some of our customers have required upwards of 2-4 TB of space for large datasets or for smaller datasets over long periods of time. If you have chosen your initial deployment poorly, don't worry! We provide ways to migrate your data with a backup and restore.
The Enterprise client supports the same platforms as our Commercial client. See this answer above for more details.
An Enterprise server and its licenses can be renewed at any time in increments of one year. Multiple years of Enterprise may be purchased up-front and typically include onging promotions for all years purchased. Client floating license renewals work like our Commercial product and will have a renewal discount. Server license renewals do not have a renewal discount.
An Enterprise server with an expired license will continue to provide access to all stored data and will continue to license any Enterprise clients running a previously-supported version of the client software. All other Enterprise functionality such as creating new projects, updating databases, and syncing changes between clients will cease to be usable until the license is renewed.
To offer the highest tier of support included in Enterprise, we require an active Enterprise server license for collaboration functionality. That said, we never want to hold your data hostage and you will be able to use your client licenses in perpetuity (though of course updates for new platforms or patches are not provided) to open up analysis databases.
Enterprise clients may be run in headless mode with floating licenses from the Enterprise server. There are no alternative "headless-specific" floating licenses available at this time.
Yes! We also offer named and computer licenses for Enterprise. These licenses can work with any Enterprise server and, when you are not connected to one, will function identically to our Commercial licenses.
No. The entire Enterprise product (server and clients) may be used entirely without online activation or even an active internet connection.
In fact, Enterprise is designed to be the most functional offline application for your reverse engineering needs. In addition to our streamlined offline install process, as of the 3.0 release, the Enterprise server supports distributing offline updates to all connected clients.
Future updates are planned to include support for offline plugin distribution and others to make offline even better.
Enterprise customers receive expedited and personalized support. This includes an optional Slack Connect for private direct chat communications with the development team. For customers whose purchases include more than 10 client licenses, they're assigned a direct engineer contact responsible for triaging issues and ensuring their needs are met.
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.
Our Enterprise edition is specifically designed to work especially well in offline networks. The Enterprise server can distribute updates to connected clients from different channels, enabling a team that's working offline to switch and/or update versions as if they were online.
Yup! We made many of them actually. There are many reasons we've made yet another IL. So many that we've given several talks on the topic at events such as Infiltrate 2017 and BlueHat 2019 among others.
If that doesn't whet your appetite, we recommend our BNIL documentation.
As of version 3.3, yes! Binary Ninja includes a fully-featured, native debugger that supports a variety of interfaces including GDB, LLDB, and Microsoft's dbgeng protocol. It also has full remote debugging support for most platform combinations. The debugger itself is open source, so please see its repository on GitHub for more information.
Yes, though you might sometimes see it called our "HLIL Decompiler". It is a powerful decompiler fully exposed through our API like all other core features and it produces output very similar (but intentionally not identical) to C.
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 did add support for what we call "Pseudo C" decompiler output in our 3.0 release. This mode will display our decompilation in as close to compilable C as possible and should compare well with C output from other decompilers.
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.
We welcome contributions to the MIT licensed API, but we do ask that you fill out and sign a contribution license agreement. Even if you don't want to submit the actual code, we'd love to have your plugin included in the community plugin repository no matter the license.
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!
Yes! Head over to our demo download to try it out. However, it has many restrictions and we actually recommend using the free Binary Ninja Cloud as a way to check out the analysis quality before buying (though many interface capabilities do not exist in the cloud version yet).
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.