0vercl0k / rp

rp++ is a fast C++ ROP gadget finder for PE/ELF/Mach-O x86/x64/ARM/ARM64 binaries.
MIT License
1.75k stars 250 forks source link

Decluter `InstructionInformation` #42

Closed 0vercl0k closed 2 years ago

0vercl0k commented 2 years ago

This PR removes the BeaEngine / Capstone specific field from the InstructionInformation structure and simplifies the DisassEngineWrapper interface as well (fixes #33).

It also fixes the Gadget::Comparator functor to operate on the dissassembly because since #41 they might not be there anymore.

Finally, it properly detects any kind of branches in a gadget - if --allow-branches is not specified, those will not appear as valid results.