ROPgadget is a command-line tool for searching return-oriented programming gadgets in binary files to facilitate ROP exploitation. It supports ELF, PE, Mach-O, and raw binary formats across x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64, and RISC-V Compressed architectures.
The tool addresses the challenge of manually identifying useful gadget sequences in binaries for constructing ROP chains. It uses the Capstone disassembler as its search engine to locate gadgets and provides filtering capabilities to narrow results by opcode patterns, memory strings, bad bytes, address ranges, and instruction depth. Users can search for specific opcodes, apply regular expressions, filter by instruction type, and generate ROP chain suggestions through the command-line interface.
ROPgadget suits security researchers, exploit developers, and reverse engineers who need to quickly identify gadget sequences in target binaries. It is particularly valuable for those working on binary exploitation challenges, vulnerability research, or defensive analysis where understanding available gadgets is essential. The tool's broad architecture and format support makes it applicable across diverse targets, from embedded systems to modern 64-bit applications.
The project maintains active engagement with its user base through regular updates and refinements to gadget detection logic. Development includes ongoing improvements to architecture-specific handling, particularly for MIPS and RISC-V variants, and enhancements to filtering and search capabilities. The tool receives updates addressing edge cases in binary parsing and gadget identification across different executable formats and instruction sets.