Binary Ninja – A new kind of reversing platform
binary.ninja
binary.ninja
If you do happen to be at DEF CON we're actually having a meet up this evening: https://twitter.com/vector_35/status/762050462195396608
The domain name time stamps should show that if it matters, though I don't think it really does.
No, I'm not trying to be snarky, I genuinely don't know.
I'm not sure why you're dismissing usability, but it's a very big feature in a tool, one of the most important ones.
Anyways, yeah, Radare isn't super usable. I'd guess I only understand 10% of it. And Radare2 is in active development, and wasn't totally ready for prime time, which is what I thought the usability comment was about.
On the other hand, Binary Ninja is the first result, so in some ways, you've got the SEO right :)
Basic feature support:
disassembly, renaming, code graph, strings, function/imports list, x-ref, hex editor, undo
Some questions:
- Why do you copy IDA and have a 32bit only demo? I can't actually evaluate this properly as everything I care about reversing these days is x64
- Doesn't seem to be any python/API plugin support? I hope you are thinking about how you will support plugins from the start, and not tack it on later (usually this results in hell for dev and users - see IDA's shitty plugin architecture)
- In the non-callgraph disassembly mode, it's difficult to follow. I think there is an overload of colour/styles
TLDR; Nice interface, clean gui, but lacking many features of IDA. The features it does have seem to work well though. I will be keeping an eye on this in future.
There has to be a shift in use case design more than making it prettier.
To start with, we have undo, which is a simple feature but it underlies some design decisions that are going to show up in other features in the near future as well.
Because we have the ability to separate user interactions from our internal analysis we can not only undo, but also better support collaborative editing and upgrading of older saved databases.
In terms of features we already have, we have a static data flow implementation that allows you to query register values at addresses which greatly simplifies a lot of analysis plugins. Here's an example:
http://arm.ninja/2016/03/08/intro-to-binary-ninja-api/
(The domain name is a coincidence, Q was just a beta tester, not officially affiliated with us)
Notice how much more robust and simpler the final implementation of that plugin using our data flow is:
https://github.com/Vector35/binaryninja-api/blob/dev/python/...
Do you have the one where a line goes to one side by more than a screen's width, goes down a tad, and then goes back sideways to nearly where it started?
I'm afraid I'm not knowledgeable enough to do it by hand. I can make a jump always fail by setting the instructions to NOPs, but I can't recalculate offsets and things required to turn a jne into a jmp...
edit: never mind found it in the FAQ, x86, ARM, MIPS, 6502
A few of our early users are also working on some other architecture plugins so I think MSP430 or AVR might exist soon.
It should only take a day or two once we get working again.
I (mostly) understand the rationale of not wanting to make it easy to bulk-decompile binaries for supposedly "non-commercial" users, but I'd be wary of seeing how much personal usability suffers before signing the dotted line.
At least until someone uses the tool to remove these limitations from Binary Ninja itself.
This is patently false. You can buy all HexRays products online.[1] I've done it myself. I'm confused as to why you're claiming this.
PS: Just in case not everyone live in first world countries or being employee of well known companies. While it's possible to buy almost any software just fine IDA have extremely weird policies.
To be fair, I used my university E-mail, and they thought they were licensing it to my university until I tried to transfer it to my personal E-mail upon graduating....
Anyone else have a problem with this? Are they indeed requiring more than the normal proof of identity to complete a cc transaction?
I was able to purchase a license for IDA Pro, I'm not an expert in the field and my job is not even remotely related to reverse engineering.
There's also hopper that starts at 89€ https://www.hopperapp.com
I'm sure there are tons of random people on HN that would love to learn more about RE by tinkering with tools like this, or maybe even that have $50 worth of work to throw at it. But in the real world, most of the market for IDA Pro is made by consultants and in-house security teams, all of whom realize something far closer to $100,000 in value from IDA, annually, than $3999.
Meanwhile, if you want to sell a reversing tool that integrates with IDA --- something like BinNavi or BinDiff --- you have to cope with IDA's $3999 price point. Whatever you sell will inevitably have to be cheaper than that. Result: most of the product talent in this space goes to appliances that sell for $50,000 a pop and only to companies that will buy 6+ boxes in a pilot.
Binary Ninja is cheap. But it's also a labor of love.
People who say that IDA Pro is expensive are not HexRays' primary market, or they have not been professionally reversing software for very long. The product is just phenomenally cheap from a value-added perspective. Open source alternatives are pretty good, and if you're focusing on iOS applications Hopper is nice, but for a one-stop shop on all platforms with excellent support and superlative features, IDA easily kills the competition.
My reverse engineering practice routinely returns more than my AppSec practice on fewer engagements. That's also just for reverse engineering, not for specialties involving reverse engineering (such as blackbox cryptanalysis, malware analysis, blackbox binary auditing, exploit development, etc).
Is IDA like Visual Studio or XCode - you basically need this to do your work - or is it more like Sublime Text or Text Mate or Github - boosts productivity but many people get by without it?