Home

Awesome

RTTI parser


Parses RTTI information from executable.


This repository and author are open to feature requests. You're more than welcome to open a feature request in issue tab. For template see FEATURE REQUEST

Post your issues here https://github.com/MlsDmitry/better-rtti-parser/issues.


Example

HexRays decompiler view

Before:

decompiler view before

After:

decompiler view after

Functions window

Before:

functions window before

After:

functions window after

Structs window

structs windows

Install & Run

  1. git clone https://github.com/MlsDmitry/better-rtti-parser
  2. Click on "IDA > File > Script file" and choose rtti_parse.py
  3. Happy RE time!

Why another RTTI parser ?

Known tools didn't have functionality to rename functions based on typeinfo ( e.g. sub_4B5A to BaseClass::AnotherClass::sub_4B5A ). So, I decided to spend few more hours to rewrite code, learn how to write IDA plugins. Finally, it works pretty fast, I really liked it, so I'll continue to update it.

Known issues

Can't rename byte at 'xxx' because the name is already used in the program.

Problem:

It's a bug that will be fixed in later commits. Probably, will add number prefix to names as IDA does for functions.

Steps to resolve

Click on ignore for this database and continue.

Current cover

Test environment

Examples

Check out example folder. There are .elf files for you to test.

Example output ->

an image should be here

Credits

  1. @IgorSkochinsky for http://www.hexblog.com/wp-content/uploads/2012/06/Recon-2012-Skochinsky-Compiler-Internals.pdf ( plugin algo entirely based on his research )
  2. @layle_ctf made my life easier with IDA remote script execution and debugging https://github.com/ioncodes/idacode