Binary Ninja Blog

State of the Ninja: Episode 13

Whew, what a crazy time it’s been lately. The world is in lock-down due to coronavirus but thankfully V35 has been able to keep working safely with everyone at home. Well, as long as you consider work-from-home with kids “safe” for some of us. We miss the office conversations and collaboration, and we’ve had to make do with fragging each other in online games and occasional video chats.

In the meantime, we’ve been able to make a ton of progress in the last several months and we’re nearing the release of our first 2.0 dev release which includes our decompiler and HLIL!

Because we’re going to have a lot of blog posts and updates coming out over the next few weeks, we wanted to make sure we got a State of the Ninja out of the way beforehand to get everyone up to date on what has happened lately.

2.0

First, a bit more background on 2.0 since we know folks are interested: the decompiler (which is synonymous with HLIL), will be released on dev to all customers with current support. If you don’t have a current license, you’ll be able to check it out ahead of the stable release (which is when we update the demo builds) on https://cloud.binary.ninja/ either right after it’s available on dev, or soon after. It should be out Very Soon Now! So keep an eye on all our usual communications channels.

In the code

As always, you can check out our closed issues for more details on bug-fixes, but here’s a summary of some of thee more obvious new features:

  • Debugger: We’ve released an official plugin for debugging and had a slew of fixes and new features added over the past month. Still technically in beta, but has some nice tricks of like being able to decode live memory with types, an API for scriptability, and automatically extracting and running a file from a bndb
  • Merge Tool: In preparation for our full collaboration feature available in the Enterprise edition, we’ve added a major new feature available to all customers, see below for more.
  • Cross-References overhaul: Tons of major improvements landed to the cross-references UI elements making it a much more powerful system for many different reverse engineering workflows.
  • Python Console Improvements: A couple of simple but helpful usability tweaks landed for the python console. hex addresses are now clickable in the output window, and the input section is smarter about automatically expanding and contracting.
  • Signature Libraries: Not to be confused with our type libraries, the improved workflow for signature libraries makes it super easy to create and apply fingerprints for static libraries
  • Many UI improvements: As an example, File / Save As now lets you select whether you want to save the binary contents or the analysis database.

Debugger

We’‘re working on a much longer post detailing debugger features and workflows for the end of this month, so keep an eye on the blog.

Merge Tool

Available from the Tools / Collaboration menu, the merge tool is great for working with multiple people on a distributed reverse engineering project. While our forthcoming Enterprise release will have an even more powerful system for automatically helping teams collaborate on large long-term reverse engineering projects, the merge tool is a great feature for CTF teams, or smaller teams of just two to three people for multi-user collaboration.

Cross-References

The previous xrefs-pane has been replaced with a brand new view with many new features. Check Help / Open Help Documentation / Getting Started / Interacting for more information on the many new features including:

  • Filtering and searching
  • Pinned Xrefs
  • Table/Tree views