Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BinaryNinja support? #105

Open
deepgray opened this issue Jan 8, 2018 · 22 comments
Open

BinaryNinja support? #105

deepgray opened this issue Jan 8, 2018 · 22 comments

Comments

@deepgray
Copy link

deepgray commented Jan 8, 2018

considering the entry cost of IDA Pro for the individual researcher for both x86 and x86_64, it would be nice if you supported BinaryNinja (at $300) as well as IDA Pro ($1409)...any plans?

for x86 support only, BinaryNinja is free with IDA Pro ($739)...

@joxeankoret
Copy link
Owner

joxeankoret commented Jan 8, 2018

I tried to add support for Binary Ninja in the past, but my initial tests were not very successful: no GUI APIs and some heuristics already available with IDA would not be useable at all with Binary Ninja (see this #29 (comment)).

So, I would love to add support for it (and I know the developers do want too) but unless I write an external GUI myself, one would not be able to graphically display the results and, also, many heuristics will not be supported either. Perhaps in the not so far away future...

BTW, if someone wants to make/start the port, I would gladly help him or her.

@deepgray
Copy link
Author

how about for Hopper?

@joxeankoret
Copy link
Owner

joxeankoret commented Jan 20, 2018 via email

@deepgray
Copy link
Author

Binary Ninja and Hopper are great entry level decompilers compared to IDA Pro...

so how would you like me to throw in a +1 me too?

@psifertex
Copy link

We continue to have requests for this so I'm coming back to re-evaluate this since we're actively working on extending the UI plugins which removes one of the biggest blockers.

I'll look into the GetInstructionList request to see if we can implement something for that which should be the only other blocker that I know of and report back.

@joxeankoret
Copy link
Owner

The biggest problem will be UI integration, I think. Can I read somewhere about the GUI APIs that you're adding? Or, if you prefer, I can tell you what I need.

@psifertex
Copy link

The goal is to allow arbitrary QT GUI elements so I imagine it will be more than sufficient. If you prefer simpler pre-built mechanisms like the ones we have now (https://api.binary.ninja/search.html?q=interaction&check_keywords=yes&area=default#) that could work if you only have a small list of UI elements you're using.

And yeah, GetInstructionList is going to be easy to implement. I'll make sure that's done before the UI extension stuff is in.

@AshKetch-um
Copy link

Politely asking for the current status of this issue. At the moment, this seems like it is in limbo and I'm not sure what if any blockers remain at this time.

Are there plans to add this support?

What are the current blockers (e.g. Binary Ninja GUI API, IDA API equivalency for some heuristic features, time/resources on the diaphora side?)

I am obviously +1 to this feature request!

Thank you!

@joxeankoret
Copy link
Owner

I don't know if it supports already GUI plugins or not as I don't use Binary Ninja. If GUI plugins are already supported, I could start porting it.

@psifertex
Copy link

GUI plugins are doable via hacks that several plugins use, but we're only weeks away from third party UI plugins being supported first class without janky QT hooking. In the meantime, I think the analysis itself should be fine and maybe worth starting due to the UI coming alone?

I think the only other one was the list of all architecture mnemonics though I'd really rather see those based on ILs instead but don't know what changes would be required for that. If arch mnemonics are required I probably add them for our integrated architectures but would require all the plugin authors to support new APIs so it's not my first choice.

@joxeankoret hit me up if you do decide to work on this and I'll bump your license for you so you don't have to repurchase.

@joxeankoret
Copy link
Owner

If GUI plugins is only some weeks away, then let's wait a bit as, presumably, I'll be porting it to Ghidra too (if it makes any sense) and, also, because one of the biggest changes I'm working on is heuristics based on IRs.

PS: A workaround I was thinking about with regard to the all arch's mnemonics is to, simply, generate a huge .py file with all of them so I don't need the underlying disassembler to support it.

@psifertex
Copy link

Sounds good. Let me know if I can help answer any questions about our IL stack.

@psifertex
Copy link

psifertex commented Apr 25, 2019

Just an update that UI plugins have been on the dev branch for a little while now. If you've got any questions, let me know. Katai, Triage, and Snippets are all python-based UI plugin examples available from: https://github.com/Vector35/binaryninja-api/tree/dev/python/examples

The APIs will also land in the next stable though I don't have a hard-deadline it will likely be fairly soon. That said, the APIs shouldn't be changing from now to then, just be a matter of bug fixes and testing so it's safe to start developing against.

@joxeankoret
Copy link
Owner

For anyone interested on the subject: I'm currently working on the port. However, I don't have an ETA.

@WanderingGlitch
Copy link

Is there a public branch with your work on the port ?
I'd like to help contribute

@psifertex
Copy link

Joxean can of course speak for himself, but I believe I have heard him mention in other contexts that he prefers to work on private or local branches until things are fairly far along.

@joxeankoret
Copy link
Owner

Sorry, I missed the comments. As Jordan says, I prefer to work on my own until I have something half-stable, then do private beta testing and, after that, publish everything. However, in this case I'm afraid I don't have anything even in private that can be considered worth of releasing at all. I haven't had time at all to work on it.

@blaquee
Copy link

blaquee commented May 15, 2020

I came in here to find the status a diaphora port for binja as Ive recently renewed my license. So just putting my bookmark and request in here as well. Also willing to test it when/if it does make it out of private branch. Thank you :)

@ghost
Copy link

ghost commented Jun 6, 2020

I'm interested as well, just leaving my +1 here :) At the moment I'm not customer of Binary Ninja because I'm still used to IDA and its plugins, but as BN is getting all these great plugins I'd definitely change :)

@ExecuteProtect
Copy link

I'm really excited to see this get implemented

@thanasisk
Copy link

Is there effort on this underway? I would really, really love to see this implemented

@joxeankoret
Copy link
Owner

Not really because I don't use it. It's highly likely that the very first port will be to Ghidra.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants