nurelin / binja_itanium_cxx_abi

Binary Ninja Itanium C++ ABI Plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Binary Ninja Itanium C++ ABI Plugin

The Itanium C++ ABI plugin provides a custom demangler, an analysis that decodes mangled names and updates function signatures, and an analysis that decodes RTTI and vtables and discovers new procedures based on virtual function pointers.

Custom demangler

The custom demangler converts the mangled names into abstract syntax trees, allowing to extract more type information than the built-in one. For example, it differentiates between complete and base class constructors and destructors.

Function signature decoding

Before / after:

Note that the decoding is necessarily heuristic as some information is lost, e.g. class members and standalone functions in a namespace have an exactly identical mangling. It is possible that the this argument (or worse) would be missing--consult the full decoded name of the function (current_function.symbol.full_name) to see the result of decoding, and apply your expertise.

RTTI and vtable decoding

Before / after:

License

0-clause BSD

About

Binary Ninja Itanium C++ ABI Plugin

License:BSD Zero Clause License


Languages

Language:Python 100.0%