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

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

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

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

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

Категории

Все категории
Loading categories
rz-ghidra — Глубокая интеграция декомпилятора Ghidra и дизассемблера Sleigh для rizin | Kitploit
Инструменты/GitHubGitHub/rizinorg/rz-ghidra
Статический анализОбратная инженерияАнализ Бинарных Файлов
GitHubrizinorg/rz-ghidra

rz-ghidra

Глубокая интеграция декомпилятора Ghidra и дизассемблера Sleigh для rizin

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
rz-ghidra логотип

rz-ghidra

Это интеграция декомпилятора Ghidra и дизассемблера Sleigh для Rizin. Она основана исключительно на части декомпилятора Ghidra, которая написана полностью на C++, поэтому сама Ghidra не требуется, и плагин может быть собран автономно. Этот проект был представлен (изначально для radare2) на r2con 2019 в рамках доклада о Cutter: https://youtu.be/eHtMiezr7l8?t=950

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

root@kitploit:~
Usage: pdg   # Native Ghidra decompiler plugin
| pdg           # Decompile current function with the Ghidra decompiler
| pdgd          # Dump the debug XML Dump
| pdgx          # Dump the XML of the current decompiled function
| pdgj          # Dump the current decompiled function as JSON
| pdgo          # Decompile current function side by side with offsets
| pdgs          # Display loaded Sleigh Languages
| pdg*          # Decompiled code is returned to rizin as comment

Следующие конфигурационные переменные (для команды e) можно использовать для настройки поведения rz-ghidra:

root@kitploit:~
    ghidra.cmt.cpp: Стиль комментариев C++
 ghidra.cmt.indent: Отступ комментария
     ghidra.indent: Величина отступа
       ghidra.lang: Пользовательский идентификатор Sleigh для переопределения автоматического определения (например, x86:LE:32:default)
    ghidra.linelen: Максимальная длина строки
   ghidra.nl.brace: Новая строка перед открывающей '{'
    ghidra.nl.else: Новая строка перед else
 ghidra.sleighhome: SLEIGHHOME

Здесь ghidra.sleighhome должен указывать на каталог, содержащий файлы *.sla, *.lspec, ... для архитектур, которые должны поддерживаться декомпилятором. Однако это настраивается автоматически при использовании пакета rz-pm или установке, как показано ниже.

Сборка

Сначала убедитесь, что подмодуль, содержащийся в этом репозитории, получен и обновлён:

root@kitploit:~
git submodule init
git submodule update

Затем плагин Rizin можно собрать и установить следующим образом:

root@kitploit:~
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
make
make install

Здесь задайте CMAKE_INSTALL_PREFIX в каталог, из которого Rizin может загрузить плагин. Шаг установки необходим для работы плагина, поскольку он включает установку необходимых файлов Sleigh. Если вы используете Rizin из git, также задайте CMAKE_PREFIX_PATH для каталога установки Rizin.

Чтобы также собрать плагин Cutter, у вас должен быть установлен Cutter из исходников в некоторый префикс, который можно опционально указать с помощью -DCMAKE_PREFIX_PATH=<путь>, затем передайте -DBUILD_CUTTER_PLUGIN=ON в cmake для включения плагина:

root@kitploit:~
/my/path/rz-ghidra> mkdir build && cd build
/my/path/rz-ghidra/build> cmake -DBUILD_CUTTER_PLUGIN=ON -DCMAKE_PREFIX_PATH=/path/to/cutter/prefix -DCMAKE_INSTALL_PREFIX=~/.local ..
/my/path/rz-ghidra/build> make && make install

По умолчанию плагин Cutter устанавливается в автоматически выбранный путь в домашнем каталоге текущего пользователя. Этот путь можно переопределить с помощью -DCUTTER_INSTALL_PLUGDIR.

Версионирование и совместимость с Rizin

Rizin имеет быстро развивающийся C API, поэтому необходимо явно указывать, какие версии rz-ghidra совместимы с какими версиями Rizin:

При использовании Rizin и rz-ghidra из git:

  • ветка rz-ghidra dev следует за веткой Rizin dev.
  • ветка rz-ghidra stable следует за веткой Rizin stable.

Что касается релизов, rz-ghidra обычно выпускается одновременно с Rizin и часто использует те же номера версий (но это не гарантируется, не полагайтесь на эти номера!). Кроме того, вместе с каждым релизом Rizin создаётся тег вида rz-0.1.2 в rz-ghidra, который точно указывает на релиз rz-ghidra и подтверждает, что этот релиз совместим с указанной версией Rizin. Эти теги могут использоваться сопровождающими дистрибутивов для поиска способов настройки зависимостей.

Лицензия

Обратите внимание, что этот плагин доступен под лицензией LGPLv3, которая является более строгой, чем лицензия Ghidra!

Эта программа является свободным программным обеспечением: вы можете распространять её и/или изменять её в соответствии с условиями GNU Lesser General Public License, опубликованной Free Software Foundation, либо версии 3 этой лицензии, либо (по вашему выбору) любой более поздней версии.

Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. Подробнее см. GNU Lesser General Public License.

Вы должны были получить копию GNU Lesser General Public License вместе с этой программой. Если нет, см. https://www.gnu.org/licenses/.

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