
Chercheur de gadgets ROP en C++ rapide pour les binaires PE/ELF/Mach-O sur les architectures x86/x64/ARM/ARM64, permettant une construction efficace de chaînes de programmation orientée retour.
rp++ ou rp est un chercheur de gadgets ROP en C++ pour les exécutables PE/ELF/Mach-O et les architectures x86/x64/ARM/ARM64.
Pour trouver un gadget ROP, vous devez spécifier un fichier avec l'option --file / -f et utiliser l'option --rop / -r en spécifiant le nombre maximum d'instructions dans le gadget :
Vous pouvez personnaliser l'adresse de base du module avec l'option --va (si vous passez une base de 0, vous obtenez des décalages relatifs) et vous pouvez également utiliser l'option --raw pour analyser les vidages de code brut.
Souvent, lors de la construction de chaînes ROP, vous pouvez avoir besoin de trouver des pointeurs vers des entiers avec des valeurs spécifiques. Pour les rechercher, vous pouvez utiliser l'option --search-int comme ci-dessous :
D'autres fois, vous pouvez avoir besoin de trouver des pointeurs vers des chaînes spécifiques. Pour les rechercher, vous pouvez utiliser l'option --search-hexa comme ci-dessous :
Vous pouvez également utiliser l'option --va pour spécifier votre propre adresse de base.
Vous trouverez des scripts shell dans src/build pour chaque plateforme prise en charge ; ci-dessous l'exemple 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