Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ROPgadget — Recherchez des gadgets ROP dans les binaires ELF, PE, Mach-O et Raw sur les architectures x86, ARM, MIPS et RISC-V. Prend en charge la génération automatisée de chaînes ROP et le mode console interactif. | Kitploit
Outils/GitHubGitHub/jonathansalwan/ropgadget
Génération de PayloadsExploitationRétro-ingénierieCTFAnalyse de BinairesExploitation de BinairesTop en Analyse de Binaires n°18Top en Exploitation de Binaires n°5Top en CTF n°8Top en Rétro-ingénierie n°16
4.5k5799il y a 2 moisVérifié par Kitploit
GitHubjonathansalwan/ropgadget

ROPgadget

Recherchez des gadgets ROP dans les binaires ELF, PE, Mach-O et Raw sur les architectures x86, ARM, MIPS et RISC-V. Prend en charge la génération automatisée de chaînes ROP et le mode console interactif.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Outil ROPgadget

Cet outil vous permet de rechercher des gadgets dans vos binaires pour faciliter votre exploitation ROP. ROPgadget prend en charge les formats ELF/PE/Mach-O/Raw sur les architectures x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64 et RISC-V Compressed.

Installation

La manière la plus simple est d'installer ROPgadget depuis PyPi :

root@kitploit:~
$ sudo apt install python3-pip
$ sudo -H python3 -m pip install ROPgadget
$ ROPgadget --help

Vous pouvez également installer ROPgadget depuis les sources. Vous devez d'abord installer Capstone.

Pour l'installation de Capstone sur une machine nix :

root@kitploit:~
$ sudo apt install python3-pip
$ sudo -H python3 -m pip install capstone

Capstone prend en charge plusieurs plateformes (Windows, iOS, Android, Cygwin…). Pour la compilation croisée, veuillez vous référer au fichier https://github.com/capstone-engine/capstone/blob/master/COMPILE.TXT.

Après installation de Capstone, ROPgadget peut être utilisé comme un outil autonome :

root@kitploit:~
$ python3 ROPgadget.py --help

Ou installé dans la bibliothèque site-packages de Python, et exécuté depuis $PATH.

root@kitploit:~
$ sudo -H python3 setup.py install
$ ROPgadget --help

Utilisation

root@kitploit:~
usage: ROPgadget.py [-h] [-v] [-c] [--binary <binary>] [--opcode <opcodes>]
                    [--string <string>] [--memstr <string>] [--depth <nbyte>]
                    [--only <key>] [--filter <key>] [--range <start-end>]
                    [--badbytes <byte>] [--rawArch <arch>] [--rawMode <mode>]
                    [--rawEndian <endian>] [--re <re>] [--offset <hexaddr>]
                    [--ropchain] [--thumb] [--console] [--norop] [--nojop]
                    [--callPreceded] [--nosys] [--multibr] [--all] [--noinstr]
                    [--dump] [--silent] [--align ALIGN] [--mipsrop <rtype>]

description:
  ROPgadget vous permet de rechercher des gadgets dans un binaire. Il prend en charge plusieurs formats de fichiers et architectures et utilise le désassembleur Capstone pour le moteur de recherche.

formats pris en charge :
  - ELF
  - PE
  - Mach-O
  - Raw

architectures prises en charge :
  - x86
  - x86-64
  - ARM
  - ARM64
  - MIPS
  - PowerPC
  - Sparc
  - RISC-V 64
  - RISC-V Compressed

arguments optionnels :
  -h, --help            affiche ce message d'aide et quitte
  -v, --version         Affiche la version de ROPgadget
  -c, --checkUpdate     Vérifie si une nouvelle version est disponible
  --binary <binary>     Spécifie un nom de fichier binaire à analyser
  --opcode <opcodes>    Recherche un opcode dans le segment exécutable
  --string <string>     Recherche une chaîne dans le segment lisible
  --memstr <string>     Recherche chaque octet dans tous les segments lisibles
  --depth <nbyte>       Profondeur pour le moteur de recherche (par défaut 10)
  --only <key>          Affiche uniquement certaines instructions
  --filter <key>        Supprime des mnémoniques spécifiques
  --range <start-end>   Recherche entre deux adresses (0x...-0x...)
  --badbytes <byte>     Rejette des octets spécifiques dans l'adresse du gadget
  --rawArch <arch>      Spécifie une architecture pour un fichier brut
                        x86|arm|arm64|sparc|mips|ppc|riscv
  --rawMode <mode>      Spécifie un mode pour un fichier brut 32|64|arm|thumb
  --rawEndian <endian>  Spécifie l'endianness pour un fichier brut little|big
  --re <re>             Expression régulière
  --offset <hexaddr>    Spécifie un décalage pour les adresses des gadgets
  --ropchain            Active la génération de la chaîne ROP
  --thumb               Utilise le mode thumb pour le moteur de recherche (ARM uniquement)
  --console             Utilise une console interactive pour le moteur de recherche
  --norop               Désactive le moteur de recherche ROP
  --nojop               Désactive le moteur de recherche JOP
  --callPreceded        Affiche uniquement les gadgets précédés d'un appel
  --nosys               Désactive le moteur de recherche SYS
  --multibr             Active les gadgets à branchements multiples
  --all                 Désactive la suppression des gadgets en double
  --noinstr             Désactive l'affichage des instructions des gadgets dans la console
  --dump                Affiche les octets des gadgets
  --silent              Désactive l'affichage des gadgets pendant l'analyse
  --align ALIGN         Aligne les adresses des gadgets (en octets)
  --mipsrop <rtype>     Recherche de gadgets utiles MIPS
                        stackfinder|system|tails|lia0|registers

exemples :
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --ropchain
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --depth 3
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --string "main"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --string "m..n"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --opcode c9c3
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --only "mov|ret"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --only "mov|pop|xor|ret"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --filter "xchg|add|sub|cmov.*"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --norop --nosys
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --range 0x08041000-0x08042000
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --string main --range 0x080c9aaa-0x080c9aba
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --memstr "/bin/sh"
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --console
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-x86 --badbytes "00|01-1f|7f|42"
  ROPgadget.py --binary ./test-suite-binaries/Linux_lib64.so --offset 0xdeadbeef00000000
  ROPgadget.py --binary ./test-suite-binaries/elf-ARMv7-ls --depth 5
  ROPgadget.py --binary ./test-suite-binaries/elf-ARM64-bash --depth 5
  ROPgadget.py --binary ./test-suite-binaries/raw-x86.raw --rawArch=x86 --rawMode=32
  ROPgadget.py --binary ./test-suite-binaries/elf-Linux-RISCV_64 --depth 8

Comment puis-je contribuer ?

  • Ajouter des gadgets système pour PPC, Sparc, ARM64 (Gadgets.addSYSGadgets()).
  • Prendre en charge RISC-V 32 bits.
  • Gérer les octets invalides dans les données lors de la génération de la chaîne ROP.
  • Gérer le big endian dans le format Mach-O comme la classe ELF.
  • Tout ce que vous pensez être cool :)

Bogues/Correctifs/Contact

Veuillez signaler les bogues, soumettre des pull requests, etc. sur GitHub à l'adresse https://github.com/JonathanSalwan/ROPgadget

Licence

Voir LICENSE_BSD.txt et l'en-tête de licence dans tous les fichiers sources.

Captures d'écran

x64

ARM

Sparc

MIPS

PowerPC

ROP chain

Télécharger l’outil