
Cercatore di gadget ROP veloce in C++ per binari PE/ELF/Mach-O su architetture x86/x64/ARM/ARM64, che consente la costruzione efficiente di catene di return-oriented programming.
rp++ o rp è un cercatore di gadget ROP in C++ per eseguibili PE/ELF/Mach-O e architetture x86/x64/ARM/ARM64.
Per trovare un gadget ROP è necessario specificare un file con l'opzione --file / -f e usare l'opzione --rop / -r specificando il numero massimo di istruzioni nel gadget:
È possibile personalizzare l'indirizzo di base del modulo con l'opzione --va (se si passa una base di 0, si ottengono offset relativi) e si può anche usare l'opzione --raw per analizzare dump di codice grezzi.
Spesso quando si costruiscono catene ROP, potrebbe essere necessario trovare puntatori a interi con valori specifici. Per cercarli, puoi usare l'opzione --search-int come mostrato di seguito:
Altre volte, potresti aver bisogno di trovare puntatori a stringhe specifiche. Per cercarli, puoi usare l'opzione --search-hexa come mostrato di seguito:
Puoi anche usare l'opzione --va per specificare il tuo indirizzo di base.
Puoi trovare script shell in src/build per ogni piattaforma supportata; di seguito l'esempio per Linux:
src/build$ chmod u+x ./build-release.sh && ./build-release.sh
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
[...]
[16/16] Linking CXX executable rp-lin-x64