Binary Ninja Deep Thoughts

Welcome to the Binary Ninja Blog

A number of folks have pointed out that the website hasn’t changed very much since we launched the product so we thought we’d remedy that. Not only do we have a changelog, but we’ve also launched our blog!

You might notice that the first entry from Andrew is a repost. He originally wrote it last year and published it under his personal blog, but we’ve polished it up a bit and are moving it here so we can have all of our Binary Ninja related blog posts in one place.

We plan a variety of types of blog posts. From brief overviews of our development plans and timelines, to in-depth technical discussions of core design decisions, to walk-throughs of specific features so keep an eye on this space.

Read on for an overview of what we’ve been up to these past few weeks.

Development

Structures

The current development branch has the new Structure UI, but for it to be more useful, we needed to implement type propagation so all your hard work identifying structures and types will be visible elsewhere in disassembly. Type propagation will also help with other bugs such as misidentifying pointers as strings.

SSA

The changes required to implement type propagation also necessitates about a few other great under-the-hood changes. Single Static Assignment, or SSA form is often used for program analysis and our implementation will be hitting dev soon, allowing a whole new range of advanced techniques using the API. Our next IL that’s being built using it will show just you useful it will be. As an added bonus, we’re re-architecting our data flow to leverage SSA and modifying it to be on-demand which should both dramatically improve performance but also result in even more accurate jump table detection.

Linear Sweep

Soon after that lands, our initial linear-sweep plugin will also be released which should help in a large number of cases

Architectures

MIPS and PPC fans, we know you’re waiting for work on your architectures. We expect the aforementioned improvements to dataflow to encompass API changes that will enable fixing the dreaded t9 register assignment on MIPS function entry, and we’re actively working on PPC now as well.

Plugin Repository

Hopefully all you plugin authors have formatted your plugin so it can be included in the plugin repository. Core APIs to automatically install and manage plugins from repositories is landing soon which should make finding and installing some of the many third-party plugins that much easier.

Pricing

Once the remaining milestones for v1.1 are finished, we’ll announce the final day of our our introductory pricing period. Student/Non-Commercial will return to its standard price of $149, and Commercial will be $599.

We’re also announcing our renewal pricing will be ~50% of the purchase price. That means that once the initial support period ends (remember, all early purchasers received an automatic two-month extension to their support period) if you wish to receive updates and downloads you will pay either $75 for Non-Commercial or $299 for Commercial for an additional year.