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.
In addition to the platform requirements above, we have the following official system requirements:
Binary Ninja may be able to work with less than the above minimums, but this is what we officially support. If you have any concerns, try our free version first.
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):
Architecture | Disassembly | Lifting | Decompilation | Assembling | Compiling |
---|---|---|---|---|---|
x86 (32-bit) | |||||
x86 (64-bit) | |||||
ARMv7 | |||||
Thumb2 | |||||
ARMv8 | |||||
PowerPC | |||||
MIPS (including Octeon extensions) | |||||
RISC-V | |||||
MSP430 | |||||
6502 | |||||
nanoMIPS (Ultimate Only) |
|||||
TriCore (Ultimate Only) |
|||||
C-SKY (Ultimate Only) |
|||||
Many others! |
Architecture | Free | Non-Commercial | Commercial | Ultimate / Enterprise |
---|---|---|---|---|
x86 (32-bit) | ||||
x86 (64-bit) | ||||
ARMv7 | ||||
Thumb2 | ||||
ARMv8 | ||||
PowerPC | ||||
MIPS (including Octeon extensions) |
||||
RISC-V | ||||
MSP430 | ||||
6502 | ||||
nanoMIPS (Ultimate Only) |
||||
TriCore (Ultimate Only) |
||||
C-SKY (Ultimate Only) |
||||
Many others! |
Need support for an architecture that isn't listed above? Extended Support Contracts are available to add the support you need.
We current have loaders for the following file formats:
Need support for a platform or file format that isn't listed above? Extended Support Contracts are available to add the support you need.
Binary Ninja requires Python 3.9 or above as of the release of version 4.1 (July 2024).
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. There is also an API for registering demangler plugins so you can create your own.
Symbols will 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. See the documentation here.
We do!
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.
The discount is 75% off and can be applied to a non-commercial or commercial license. So for example, a non-commercial $299 license would be $74 (we round down to whole dollars) with the student discount applied.
To apply, use the educational discount form. Please do not use any other mechanisms besides that form or email to [email protected]
as we have special settings there to prevent long-term storage of PII.
Yes! For educators doing research, please use the educational discount form. Educators are eligible for the 75% discount for research purposes.
Additionally, we also offer a free set of educational licenses for professors and students for relevent coursework. To apply, email [email protected]
and include a link to your syllabus, the number of students expected in your course, and how you plan to use Binary Ninja in the course.
No, by default, none of our support renewals are automatic. You will receive notice 60 days, 30 days, and 5 days before support ends. If you do nothing, your support will expire and you will lose access to updates, downloads and other support but you will not be charged.
All purchases and renewals made using our automated system result in immediate delivery. If you don't see it in your inbox already after a purchase, double check your spam folder!
Manually fulfillfed POs are usually turned around in one-business day, though that does depend on availability.
No. When you purchase a Binary Ninja license, you receive the latest version of Binary Ninja plus 1 year of support and updates. 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.
See the enterprise renewal section for details specific to Binary Ninja Enterprise.
60, 30, and 5 days before your support period ends, you'll receive an email including a link allowing you to renew. 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 with active support by using the license and installer recovery page.
Download links for your new purchase are only valid for 72 hours. If you need new download links, you can request them at any time via the license recovery page.
Sometimes, this also happens to valid links. Most commonly, an email scanner or other application will accidentally change the links in the email and make them invalid. Most commonly, the "&
" characters will be transformed into "&
" characters.
The demo version has been removed and replaced with the free version. See that answer below!
The free is not upgraded. To upgrade from the free to a paid version, simply uninstall the free version 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.
We give out redemption codes in support of many community events as prizes and sometimes companies pre-purchase these codes which can be activated here to activate.
Note that redemption codes typically expire 1 year after they are generated.
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 and Ultimate 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.
Enterprise pricing is more complicated due to needing a minimum of one server license and having more license choices available (since floating licenses are offered). Pricing can also change 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.
As a United States based company, Vector 35 (and its online payment processor Fastspring) only sell to locations not excluded by sanctions. Otherwise, there are no geographic restrictions on purchasing or using Binary Ninja. Likewise, there is no regional pricing.
Purchase orders and invoices are supported for purchases greater than $14,990 USD. Purchases or renewals that require a PO under that amount will be subject to a manual processing fee. Contact us for more information.
As a small company, we have to use outside legal counsel to verify any changed terms of purchase or license modifications. As a result, we are unable to offer modifications or fulfill additional paperwork requirements for purchases below $14,990 USD.
Note that this also applies to additional documentation requested AFTER a purchase such as maintaining ACH records, contact information, or similar records. Unless you are in the middle of processing a purchase order over this amount or are purchasing an Enterprise license, we are unable to fulfill such requests.
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), Commercial, or Ultimate 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 |
---|---|---|
Named | ||
Computer | ||
Floating (Enterprise) |
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 your Non-Commercial or Commercial, licenses for an additional year for 50% of the current purchase price (Enterprise/Ultimate 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 support for a Non-Commercial and Commercial licenses are 50% of the current purchase price for that license (Enterprise/Ultimate has different renewal pricing).
Yes, our price has changed several times. We launched in mid-2016 with an introductory price that changed in September 2017. We also increased our price when we released our decompiler as opposed to charging separately. 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 will typically 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 (for Non-Commercial and Commercial — Enterprise/Ultimate pricing does not follow the same schedule).
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 and Ultimate 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 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 current 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.
As long as you are within your support period, simply use our self-service license recovery page. If you can no longer access your original email address, contact support.
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, debugger, a fully exposed stack of Intermediate Languages with data flow value-set analysis, and fully extensible API. Several of those features are unique in isolation amongst our competitors, and the combination is far and away 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.
While Vector 35 is willing and able to work with a large number of resellers, we offer no reseller discounts so you can be certain that purchasing directly through Vector 35 will always be the lowest cost option.
Floating licenses are managed by the Enterprise server and can be checked out by an authenticated 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 Enterprise server bundle includes 3 floating Binary Ninja Ultimate 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 22.04 and newer. The database and data store can be hosted separately using cloud services like Amazon RDS or EC2.
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+. Experimental support for Red Hat using Podman also exists.
Support for running the Enterprise server in a hosted cloud service (e.g. Amazon's Elastic Container Service or Microsoft's Azure Container Instances) is provided on a best-effort basis. Some collaboration features are not guaranteed to work, depending on the features available.
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.
Any licensed copy of Binary Ninja Ultimate (named, computer, floating) supports connecting to an Enterprise server. 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. Floating license renewals work like usual for Binary Ninja Ultimate and 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 provide floating licenses to any previously-supported version of Binary Ninja Ultimate. All other Enterprise functionality such as creating new projects, updating databases, and syncing changes between clients will not be usable until the license is renewed.
We never want to hold your data hostage and we want you to use your paid-for floating licenses in perpetuity to open your analysis databases. Updates for new platforms or patches are, however, not provided without active support.
Binary Ninja Ultimate can be run in headless mode with floating licenses from the Enterprise server. There are no "headless-specific" licenses or special copies of the client.
Yes! Any copy of Binary Ninja Ultimate will work with any Enterprise server, regardless of license type.
No. The entire Enterprise product (server and clients) may be used entirely without online activation or even an active internet connection.
Enterprise has been specifically designed to be the most functional offline reverse engineering application on the market. In addition to a complete offline install process, the Enterprise server also supports distributing offline updates to all connected clients.
Future updates are planned to include additional offline support for plugin distribution, settings profiles, and more.
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 floating licenses, they're assigned a direct engineer contact responsible for triaging issues and ensuring their needs are met.
This is intended to ensure bugs in the product or questions about the product do not hinder your organization's ability to get work done. It does not include things like on-site support, collaboration on writing plugins, providing custom training, or deveoping new features for Binary Ninja. For that, you'll want an Extended Support Contract. See that page for more details.
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, Ultimate, 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.
The answer is "it depends". If you have purchased a named license, you can use it on any computer as long as you are the only person using it, including remote cloud access.
If your organization has purchased a computer-based license, you may only access that license on a single computer and only one user may use it at a time. The license should not be automatically deployed on cloud infrastructure. To migrate that license to a different computer, contact support.
Of course, we offer our own free cloud version, and if your organization is in need of floating licenses on public or private cloud infrastructure, an Enterprise license may be the right option.
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.
Additionally, not all programs are writtenin C! We believe modern decompilers should be able to represent code in *any* source language. To that end, we added support for what we call "Pseudo C" decompiler output in our 3.0 release and "Pseudo Rust" in our 4.2 release. These modes will display our decompilation in as close to compilable C and Rust as possible. The Pseudo C output in particular 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 or Ultimate edition 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.
See here.
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.
To disable most online activity, besides firewall options, you can disable activeContent, and disable Update to latest version automatically
in the Update Channel Preferences.
Vector 35 collects the following from all Binary Ninja clients while it checks for updates:
All of this can be prevented either by use of a firewall, or simply disabling all network settings.
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.
There are several versions of Binary Ninja, but none of the paid solutions are cloud software:
The short answer is no. While several components have been released as open source, the main product is not. 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).
As long as you are under active support, simply use our self-service license recovery page. If you can no longer access your original email address, contact support.
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.
Yes! We have two ways for you to try out Binary Ninja. Head over to our free download page to see your options. If you're interested in a Commercial, Ultimate, or Enterprise evaluation, contact us.
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.