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

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

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

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

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

Категории

Все категории
Loading categories
ropium — Автоматизированный построитель ROP-цепочек, который извлекает и анализирует гаджеты из бинарных файлов с помощью семантических запросов, поддерживая архитектуры X86/X64 с Python API и CLI. | Kitploit
Инструменты/GitHubGitHub/boyan-milanov/ropium
Фреймворки для эксплойтовОбратная инженерияШелл-кодРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubboyan-milanov/ropium

ropium

Автоматизированный построитель ROP-цепочек, который извлекает и анализирует гаджеты из бинарных файлов с помощью семантических запросов, поддерживая архитектуры X86/X64 с Python API и CLI.

Репозиторий
402454 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться




О программе

ROPium (ранее ROPGenerator) — это библиотека/инструмент, который делает ROP-эксплойты простыми. Он автоматически извлекает и анализирует гаджеты из бинарных файлов и позволяет находить ROP-цепочки с помощью семантических запросов. ROPium поддерживает архитектуры X86 и X64, в ближайшее время будет расширена поддержка ARM.

Ключевые особенности:

  • Простота: ROPium работает «из коробки» с удобным интерфейсом командной строки
  • Python API: легко интегрировать ROPium в скрипты благодаря его Python API
  • Автоматическое построение цепочек: ROPium автоматически комбинирует гаджеты для создания сложных ROP-цепочек
  • Расширенные возможности: поддержка вызовов функций для различных ABI, системных вызовов и т.д.
  • Семантические запросы: запросы ROPium быстры и удобны в написании: rax=rbx+8, [rdi+0x20]=rax, rsi=[rbx+16], 0x08040212(1, 2, rax), [0xdeadbeaf] = "/bin/sh\x00", sys_execve(0xdeadbeef, 0, 0), sys_0x1(0), ...

Содержание

  • О программе
  • Установка
  • Начало работы
    • Интерфейс командной строки
    • Python API
  • Docker
  • Контакты
  • Лицензия
  • Благодарности

Установка

Сначала установите фреймворк дизассемблирования Capstone:

root@kitploit:~
  sudo apt-get install libcapstone-dev

Также вам понадобится последняя версия ROPgadget:

root@kitploit:~
  git clone https://github.com/JonathanSalwan/ROPgadget && cd ROPgadget
  python setup.py install --user 

Для использования инструмента CLI установите prompt_toolkit:

root@kitploit:~
  pip3 install prompt_toolkit

Наконец, установите ROPium:

root@kitploit:~
  git clone https://github.com/Boyan-MILANOV/ropium && cd ropium
  make
  make test
  sudo make install 

Начало работы

Интерфейс командной строки

Благодаря оболочке командной строки вы можете использовать ROPium интерактивно для быстрого построения ROP-цепочек:

Python API

Нужно интегрировать ROP-цепочки прямо в свои скрипты? Хорошие новости: у ROPium есть Python API!

Загрузка бинарного файла и поиск ROP-цепочек:

root@kitploit:~
from ropium import *
rop = ROPium(ARCH.X64)
rop.load('/lib/x86_64-linux-gnu/libc-2.27.so')

chain = rop.compile('rbx = [rax + 0x20]')

Вывод ROP-цепочки в различных форматах:

root@kitploit:~
>>> print( chain.dump() )

0x000000000009a851 (sub rax, 0x10; ret)
0x0000000000130018 (mov rax, qword ptr [rax + 0x30]; ret)
0x0000000000052240 (push rax; pop rbx; ret)

>>> print(chain.dump('python'))

from struct import pack
off = 0x0
p = ''
p += pack('<Q', 0x000000000009a851+off) # sub rax, 0x10; ret
p += pack('<Q', 0x0000000000130018+off) # mov rax, qword ptr [rax + 0x30]; ret
p += pack('<Q', 0x0000000000052240+off) # push rax; pop rbx; ret

>>> print(chain.dump('raw'))

b'Q\xa8\t\x00\x00\x00\x00\x00\x18\x00\x13\x00\x00\x00\x00\x00@"\x05\x00\x00\x00\x00\x00'

Установка ограничений на ROP-цепочки:

root@kitploit:~
# Байты, которые не должны появляться в ROP-цепочке
rop.bad_bytes = [0x00, 0x0a, 0x0b]

# Регистры, которые не должны быть изменены ROP-цепочкой
rop.keep_regs = ['rsi', 'rdx']

# Разрешить/запретить разыменование регистров, которые могут содержать недействительные адреса
# Безопасный режим по умолчанию включён (True)
rop.safe_mem = False

# Укажите, какую ABI использовать при вызове функций
rop.abi = ABI.X86_CDECL

# Укажите целевую операционную систему для системных вызовов
rop.os = OS.LINUX

Docker

При необходимости вы можете запустить ROPium в Docker-контейнере. Контейнер можно создать из Dockerfile следующим образом:

root@kitploit:~
# Создайте свой образ Docker (это займёт время!)
docker build . --tag ropium

# Запустите образ в интерактивном режиме, смонтировав анализируемый файл
docker run --rm -it -v /FULL/HOST/PATH/FILE:/tmp/FILE:ro ropium

(ropium)> load -a X86 /tmp/FILE

Фактический образ занимает около 200 МБ и основан на Debian Stretch с установленным Python 3.7.3.

Контакты

Boyan MILANOV - boyan.milanov (at) hotmail (dot) fr

Лицензия

ROPium предоставляется под лицензией MIT.

Благодарности

Участники:

  • Поддержка Docker-контейнеров: migounette, clslgrnc

ROPium использует следующие замечательные проекты:

  • capstone : Фреймворк дизассемблирования
  • ROPgadget : Извлекатель гаджетов
  • prompt-toolkit : Библиотека интерфейса командной строки на Python
Скачать инструмент