The nrop components and tricks are detailed in the following sections. If you feel that something is poorly explained feel free to contact me :)
nrop relied for a long time on the XED disassemblers, but now a new tiny interface is available to use your custom state-of-art disassembler. You can see the in-depth details in the dedicated documentation page.
Several levels of logs and debug are available in the nrop source code. However they are disabled by default for performances and have to be enabled before compilation. The logging documentation page details how it is implemented and how to enable them.
The nrop architecture allows more than just Return-Oriented Programming. You can play with the ELF file format and create new plugins by registering your new code in the main file packer.c
.
The following pages are explaining specific plugins.
The project can be compiled with clang
and various dynamic analysis such as ASAN
. See the analysis documentation for more information.
If you only need the assembly converter to LLVM, read the dedicated page
The compilation can be complicated, and the faq dedicated page is a convenient start to progress.