I find Ghidra to be much better at this, since people actually write loafers for it and you get a decompiler “for free”.
I find Ghidra to be much better at this, since people actually write loafers for it and you get a decompiler “for free”.
For the obscure architectures Ghidra does support, it's way better than IDA by virtue of having a decompiler alone. Even if the decompilation is subtly wrong, the broad strokes are so much easier to navigate that finding the right method to go through by hand is much easier.
And once you dive into Ghidra's P-Code IR and more advanced plugin support and move beyond existing IDA plugins, it's honestly better than IDA for things nobody has done before.
Now, there are some obscure architectures like C167 for which we still lack a working Ghidra processor model, but this is only a matter of time - and once it comes, it will already be way ahead of IDA!
Disclaimer: BN founder, so biased of course but I'm pretty up-front about our strengths/weaknesses.
Thanks for the post though, as I did look into adding a new Architecture and the setup for defining a new ISA is much simpler than it is in even Ghidra/SLEIGH, so kudos to that. Maybe if I find myself with a lot of free time I will try adding something.
EDIT: But yeah, we designed our lifting to be as simple as possible. Specifically the way we handle flags tends to simplify much of the normal tedium around what's required for other decompilers. If you do decide to build a C167 module, give us a look again. :-)
You guys should try and get someone to write a book kind of like the IDA / Ghidra books that Chris Eagle did.
There could be something out there I just missed. Got any advice?
But more importantly, there are video excerpts for some basic features which should at least help with understanding how to use BN:
https://www.youtube.com/watch?v=xKBQatwshs0&list=PLCVV6Y9Lmw...
We've got a few more in the editing queue I need to clear out as well.
That said, I agree in terms of needing more intro tutorials would be helpful. Part of the problem with producing something like the IDA books is that we are under far too active development. Our UI and features have grown exponentially over the past few years so there was just never a good time to make something that wouldn't be out of date before it was even done.
You might be interested in joining the Binary Ninja slack which is a great community for getting questions answered. https://slack.binary.ninja/
There's also the free cloud version which doesn't have quite the same features but is an easier introduction without paying. https://cloud.binary.ninja/
You don't even need to describe the whole instruction set, just all the instructions that your target binary uses.
Such an amazing thing. And or1k is a nasty architecture with delay slots, which makes manual assembly reading quite tedious, etc. So the decompiler "C" output is very useful in this situation. I was in awe.