Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ROPgadget — Поиск ROP-гаджетов в ELF, PE, Mach-O и Raw бинарных файлах на архитектурах x86, ARM, MIPS и RISC-V. Поддерживает автоматическую генерацию ROP-цепочек и интерактивный режим консоли. | Kitploit
Инструменты/GitHubGitHub/jonathansalwan/ropgadget
Генерация полезной нагрузкиЭксплуатацияОбратная инженерияCTFАнализ Бинарных ФайловЭксплуатация Бинарных ФайловТоп в Анализ Бинарных Файлов №18Топ в Эксплуатация Бинарных Файлов №5Топ в CTF №8Топ в Обратная инженерия №16
4.5k57992 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHubjonathansalwan/ropgadget

ROPgadget

Поиск ROP-гаджетов в ELF, PE, Mach-O и Raw бинарных файлах на архитектурах x86, ARM, MIPS и RISC-V. Поддерживает автоматическую генерацию ROP-цепочек и интерактивный режим консоли.

Репозиторий
Поделиться

Инструмент ROPgadget

Этот инструмент позволяет искать гаджеты в ваших бинарных файлах для упрощения ROP-эксплуатации. ROPgadget поддерживает форматы ELF/PE/Mach-O/Raw на архитектурах x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64 и RISC-V Compressed.

Установка

Самый простой способ — установить ROPgadget из PyPi:

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

Также можно установить ROPgadget из исходного кода. Сначала необходимо установить Capstone.

Установка Capstone на nix-машине:

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

Capstone поддерживает несколько платформ (windows, ios, android, cygwin...). Информацию о кросскомпиляции см. в файле https://github.com/capstone-engine/capstone/blob/master/COMPILE.TXT.

После установки Capstone ROPgadget можно использовать как автономный инструмент:

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

Или установить в библиотеку site-packages Python и запускать из $PATH.

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

Использование

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 позволяет искать гаджеты в бинарном файле. Поддерживает несколько
  форматов файлов и архитектур. В качестве движка поиска использует дизассемблер Capstone.

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/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

Как я могу внести вклад?

  • Добавить системные гаджеты для PPC, Sparc, ARM64 (Gadgets.addSYSGadgets()).
  • Поддержка RISC-V 32-bit.
  • Обработка плохих байтов в данных при генерации ROP-цепочки.
  • Поддержка big endian в формате Mach-O, как в классе ELF.
  • Всё, что вы считаете полезным :)

Ошибки/Патчи/Контакты

Пожалуйста, сообщайте об ошибках, отправляйте pull request'ы и т.д. на GitHub: https://github.com/JonathanSalwan/ROPgadget

Лицензия

См. LICENSE_BSD.txt и заголовок лицензии во всех исходных файлах.

Скриншоты

x64

ARM

Sparc

MIPS

PowerPC

ROP chain

Скачать инструмент