carstein / Annotator

Binary Ninja Function Annotator
40 stars 10 forks source link

Add support for ARM #2

Open Matir opened 6 years ago

Matir commented 6 years ago

Currently attempting to use Annotator on ARM binaries produces an error about not finding a virtual stack. I don't know if that is the only architecture-specific requirement, or if there are others?

carstein commented 5 years ago

First of all, I don't know why I have missed issue. I swear I thought I've answered. Now - for annotator to work with ARM it would require a VirtualStack (as you have noticed) - virtual stack is pretty much something that parses instructions and construct virtual stack as the program executes but instead of values (that binary ninja tracks natively) it tracks instructions altering the stack/registers. So, for ARM we would need something that would embed calling convention and would be able to parse arm asm instructions - given my limited knowledge about this platform it won't happen in near future.

Also, virtual stack, is fairly nifty, but not the most elegant solution. I'm planning to rewrite it completely taking advantage of MLIL and variable tracking - my intention is to have architecture agnostic solution that will leverage native binary ninja compatibility.