allanlw / binja-xtensa

Binary ninja plugin for decoding Xtensa

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Binary Ninja plugin for Xtensa

This repository contains a basic Binary Ninja plugin for the Xtensa instruction set. It doesn't actually do any disassembly itself, instead it acts as glue between Binary Ninja and radare2, which contains a full Xtensa disassembler.

You must have radare2 and r2pipe installed for this plugin to work.

For lifting to LLIL, it uses a simple ESIL -> LLIL translator.

Only Little Endian Xtensa is supported. Narrow instructions and loops are supported. Register windows are partially supported, but Binary Ninja doesn't seem to have proper support for windowed ABIs.

A function recognizer is included that renames subroutines that start with an entry instruction to XTFUNC to differentiate them.

If you're feeling masochistic (or otherwise interested in debugging the ESIL->LLIL translator), set VERBOSE_IL to True in the script. You'll get the ESIL included in the regular disassembly, and extra useless LLIL generated like the various loop register settings.

Useful links:

License

MIT. see LICENSE

About

Binary ninja plugin for decoding Xtensa

License:MIT License


Languages

Language:Python 100.0%