Frequently Asked Questions

No matching FAQ entries were found.

  • Platforms

  • What platforms does Binary Ninja run on?

    One Binary Ninja license includes support for Linux, MacOS, and Windows. Specifically:

    • Linux: 64-bit Ubuntu most recent LTS plus latest stable are officially supported, many other distros are unofficially supported
    • MacOS: 10.14 and newer (usually try for support of the latest major and at least one major revision back)
    • Windows: Windows 8 x64 and Windows 10 x64
  • What CPU architectures are supported?

    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):

    Architecture Disassembly Lifting Assembling Compiling
    x86 32-bit Y Y Y Y
    x86 64-bit Y Y Y Y
    ARMv7 Y Y Y Y
    Thumb2 Y Y Y N
    ARMv8 Y Y Y Y
    PowerPC Y Y Y Y
    MIPS Y Y Y Y
    6502 Y Y - -
    Many others! - - - -
  • What file formats are supported?

    We current have loaders for the following file formats:

    • PE/COFF
    • ELF
    • Mach-O (including FAQ files, though only one arch at a time)
    • .NES (via an example plugin)
    • Raw Binary (You can easily create functions from any architecture on raw binary files using the "P" hotkey, or the right-click context menu in raw hex or linear view)
    • Many others
  • Does Binary Ninja support Python 2?

    No, as Python2 was officially end-of lifed on January 1, 2020, the last stable build of Binary Ninja which supported it was 2.2.

  • Can you demangle symbols?

    We currently demangle both GNU3 and MSVC symbols including C++11 using our own cross-platform library on OS X, Linux, and Windows.

  • Do you support loading PDB files?

    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.

  • Do you support loading DWARF information?

    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.

  • Purchasing

  • Do you have a student discount?

    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.

    To apply, use this Google 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.

  • Can I purchase with bitcoin?

    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.

  • How do I renew my license?

    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).

  • Do you support NET terms?

    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.

  • Can I purchase via a purchase order or get an invoice?

    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.

  • Will you agree to custom terms or sign additional paperwork before a purchase?

    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.

  • Can I order through a reseller?

    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.

  • How many computers can I run Binary Ninja on?

    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.

  • Are updates included in the purchase?

    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.

  • What will renewal pricing for continued updates be?

    Renewing a support license costs 50% of the current purchase price for that license.

  • Can I upgrade from one license to another?

    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.

  • Can I transfer my named license to someone else?

    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.

  • What do you consider "commercial" use?

    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:

    • Non-commercial usage: You are a network administrator at a commercial organization with discretionary budget and have been practicing CTF on your own time using work resources (approved by work). Your usage qualifies for non-commercial use as you are using Binary Ninja purely for educational, non-commercial purposes.
    • Commercial usage: You are a network administrator at a non-profit or government organization who regularly engages in malware analysis as a part of your job. You purchase Binary Ninja to use it to analyze malware during paid work-hours. Because you are paid to use Binary Ninja, your use is commercial.

    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.

  • What is your return policy?

    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.

  • What if I lose my license or installer?

    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.

  • Can you write a sole source justification for my purchasing department?

    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).

  • Design

  • Can Binary Ninja work offline?

    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.

  • You made another IL!

    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.

  • Is Binary Ninja a debugger?

    Not out of the box, but we do have an official plugin for debugging available both from the plugin manager, and as a separate plugin.

    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.

  • Is Binary Ninja a decompiler?

    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.

  • What is this ZX and SX notation?

    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.

  • Why is your decompilation not C?

    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.

  • What's SCC?

    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.

  • Do you support any automation/API?

    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.

  • Can I contribute to the API?

    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.

  • Future

  • Will you support collaboration?

    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.

  • Will the price ever change?

    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.

  • Privacy

  • What is your privacy policy?

    See here.

  • Why does Binary Ninja connect online?

    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.

  • Do you watermark my downloaded binary?

    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 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!

  • Security

  • How do I verify your binaries?

    This website contains SHA256 hashes you can use to verify your downloads. In addition, our Mac OS and Windows binaries are digitally signed.

  • Do you have a bug bounty?

    We have no official bug bounty at this time. That said, we're always grateful for bug reports and encourage security reports.

  • Do you isolate your analysis with a sandbox?

    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.

  • About

  • Who makes Binary Ninja?

    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.

  • Wasn't this an open source project at first?

    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).

  • My download links have expired!

    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.

  • Who is the best unofficial support representative in the public slack and why is it Josh?

    Well, you already kinda answered that, didn't you? We agree though!

  • Do you have a demo?

    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).

  • My question wasn't answered?

    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.