Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ROPgadget — Buscar gadgets ROP en binarios ELF, PE, Mach-O y Raw en las arquitecturas x86, ARM, MIPS y RISC-V. Admite generación automatizada de cadenas ROP y modo de consola interactivo. | Kitploit
Herramientas/GitHubGitHub/jonathansalwan/ropgadget
Generación de PayloadsExplotaciónIngeniería InversaExplotación de Binarios
GitHubjonathansalwan/ropgadget

ROPgadget

Buscar gadgets ROP en binarios ELF, PE, Mach-O y Raw en las arquitecturas x86, ARM, MIPS y RISC-V. Admite generación automatizada de cadenas ROP y modo de consola interactivo.

Ver Repositorio
4.5k579hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Herramienta ROPgadget

Esta herramienta permite buscar gadgets en tus binarios para facilitar tu explotación ROP. ROPgadget soporta formatos ELF/PE/Mach-O/Raw en arquitecturas x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64 y RISC-V Comprimido.

Instalación

La forma más fácil es instalar ROPgadget desde PyPi:

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

Alternativamente, puedes instalar ROPgadget desde las fuentes. Primero debes instalar Capstone.

Para la instalación de Capstone en una máquina nix:

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

Capstone soporta múltiples plataformas (windows, ios, android, cygwin...). Para la compilación cruzada, consulta el archivo https://github.com/capstone-engine/capstone/blob/master/COMPILE.TXT.

Después de instalar Capstone, ROPgadget puede usarse como una herramienta independiente:

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

O instalarse en la biblioteca de paquetes de Python y ejecutarse desde $PATH.

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

Uso

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 lets you search your gadgets on a binary. It supports several
  file formats and architectures and uses the Capstone disassembler for
  the search engine.

formats supported:
  - ELF
  - PE
  - Mach-O
  - Raw

architectures supported:
  - x86
  - x86-64
  - ARM
  - ARM64
  - MIPS
  - PowerPC
  - Sparc
  - RISC-V 64
  - RISC-V Compressed

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display the ROPgadget's version
  -c, --checkUpdate     Checks if a new version is available
  --binary <binary>     Specify a binary filename to analyze
  --opcode <opcodes>    Search opcode in executable segment
  --string <string>     Search string in readable segment
  --memstr <string>     Search each byte in all readable segment
  --depth <nbyte>       Depth for search engine (default 10)
  --only <key>          Only show specific instructions
  --filter <key>        Suppress specific mnemonics
  --range <start-end>   Search between two addresses (0x...-0x...)
  --badbytes <byte>     Rejects specific bytes in the gadget's address
  --rawArch <arch>      Specify an arch for a raw file
                        x86|arm|arm64|sparc|mips|ppc|riscv
  --rawMode <mode>      Specify a mode for a raw file 32|64|arm|thumb
  --rawEndian <endian>  Specify an endianness for a raw file little|big
  --re <re>             Regular expression
  --offset <hexaddr>    Specify an offset for gadget addresses
  --ropchain            Enable the ROP chain generation
  --thumb               Use the thumb mode for the search engine (ARM only)
  --console             Use an interactive console for search engine
  --norop               Disable ROP search engine
  --nojop               Disable JOP search engine
  --callPreceded        Only show gadgets which are call-preceded
  --nosys               Disable SYS search engine
  --multibr             Enable multiple branch gadgets
  --all                 Disables the removal of duplicate gadgets
  --noinstr             Disable the gadget instructions console printing
  --dump                Outputs the gadget bytes
  --silent              Disables printing of gadgets during analysis
  --align ALIGN         Align gadgets addresses (in bytes)
  --mipsrop <rtype>     MIPS useful gadgets finder
                        stackfinder|system|tails|lia0|registers

examples:
  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/elf-Linux-x86 --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

¿Cómo puedo contribuir?

  • Añadir gadgets de sistema para PPC, Sparc, ARM64 (Gadgets.addSYSGadgets()).
  • Soporte para RISC-V de 32 bits.
  • Manejar bytes incorrectos en los datos durante la generación de la cadena ROP.
  • Gestionar big endian en formato Mach-O como la clase ELF.
  • Todo lo que creas que está bien :)

Errores/Parches/Contacto

Por favor, reporta errores, envía pull requests, etc. en GitHub en https://github.com/JonathanSalwan/ROPgadget

Licencia

Consulta LICENSE_BSD.txt y el encabezado de licencia en todos los archivos fuente.

Capturas de pantalla

x64

ARM

Sparc

MIPS

PowerPC

Cadena ROP

Descargar herramienta