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

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

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

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

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

Категории

Все категории
Loading categories
sleigh — Сборка CMake библиотеки спецификаций процессора SLEIGH из Ghidra, предоставляющая автономные движки дизассемблирования и подъёма p-code для инструментов обратной разработки. | Kitploit
Инструменты/GitHubGitHub/lifting-bits/sleigh
Статический анализАнализ КодаДинамический анализ кода (DAST)Обратная инженерияСкриптинг и автоматизацияУтилиты и фреймворкиАнализ Бинарных Файлов
GitHublifting-bits/sleigh

sleigh

Сборка CMake библиотеки спецификаций процессора SLEIGH из Ghidra, предоставляющая автономные движки дизассемблирования и подъёма p-code для инструментов обратной разработки.

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

Популярное

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

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

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

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

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

Библиотека Sleigh

Sleigh — это язык, используемый для описания семантики наборов инструкций микропроцессоров общего назначения с достаточной детализацией, чтобы облегчить обратную разработку программного обеспечения, скомпилированного для этих архитектур. Он является частью платформы обратной разработки Ghidra и лежит в основе двух её ключевых компонентов: движков дизассемблирования и декомпиляции.

Этот репозиторий предоставляет проект сборки Sleigh на основе CMake, чтобы его можно было собрать и упаковать как отдельную библиотеку и повторно использовать в проектах, отличных от Ghidra.

Поддерживаемые платформы

НазваниеПоддержка
LinuxДа
macOSДа
WindowsДа

Зависимости и предварительные требования

Обязательные

НазваниеВерсияПакет Linux для установкиПакет macOS Homebrew для установки
(сборки HEAD) zlibАктуальнаяzlib1g-devzlib
GitПоследняяgitН/Д
CMake3.18+cmakecmake

ПРИМЕЧАНИЕ: Этот проект CMake загружает исходный код Ghidra из интернета во время конфигурации. См. раздел о примечании к исходному коду Ghidra для получения более подробной информации.

Опциональные

Для сборки документации:

НазваниеВерсияПакет Linux для установкиПакет macOS Homebrew для установки
DoxygenПоследняяdoxygendoxygen
GraphVizПоследняяgraphvizgraphviz

Сборка и установка библиотеки Sleigh

# Clone this repository (CMake project for sleigh)
git clone https://github.com/lifting-bits/sleigh.git
cd sleigh

# Configure CMake
cmake -B build -S .

# Build Sleigh
cmake --build build --parallel 8

# Install Sleigh
cmake --install build --prefix ./install

Примечание к исходному коду Ghidra

Исходный код Ghidra на самом деле не включён в этот git-репозиторий, и по умолчанию CMake автоматически загрузит для вас стабильную версию из интернета.

Пожалуйста, см. src/README.md для получения дополнительной информации о том, как настроить, какой коммит исходного кода Ghidra будет использоваться/компилироваться, включая указание вашей собственной локальной копии исходного кода Ghidra.

Упаковка

Конфигурация CMake также поддерживает сборку пакетов для Sleigh.

Например:

# Package Sleigh
cmake --build build --target package

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

Пример программы под названием sleigh-lift включён для демонстрации того, как использовать API Sleigh. Она принимает шестнадцатеричную строку байтов и может дизассемблировать её или поднять в p-code. Программу можно вызвать следующим образом, где аргумент action должен быть либо disassemble, либо pcode:

sleigh-lift [action] [sla_file] [bytes] [-a address] [-p root_sla_dir] [-s pspec_file]

Например, чтобы дизассемблировать следующую строку байтов:

$ sleigh-lift disassemble x86-64.sla 4881ecc00f0000
0x00000000: SUB RSP,0xfc0

И чтобы поднять её в p-code:

$ sleigh-lift pcode x86-64.sla 4881ecc00f0000
(register,0x200,1) = INT_LESS (register,0x20,8) (const,0xfc0,8)
(register,0x20b,1) = INT_SBORROW (register,0x20,8) (const,0xfc0,8)
(register,0x20,8) = INT_SUB (register,0x20,8) (const,0xfc0,8)
(register,0x207,1) = INT_SLESS (register,0x20,8) (const,0x0,8)
(register,0x206,1) = INT_EQUAL (register,0x20,8) (const,0x0,8)
(unique,0x12c00,8) = INT_AND (register,0x20,8) (const,0xff,8)
(unique,0x12c80,1) = POPCOUNT (unique,0x12c00,8)
(unique,0x12d00,1) = INT_AND (unique,0x12c80,1) (const,0x1,1)
(register,0x202,1) = INT_EQUAL (unique,0x12d00,1) (const,0x0,1)

Если вы не хотите собирать sleigh-lift, вы должны установить опцию CMake-переменной sleigh_BUILD_EXTRATOOLS в OFF во время конфигурации CMake.

Вспомогательные утилиты

Этот репозиторий содержит вспомогательную утилиту, не являющуюся частью Sleigh/Ghidra, которую вы можете найти в директории support. Она имеет следующую сигнатуру и может помочь пользователю найти местоположение заданного файла спецификации в системе:

std::optional<std::filesystem::path>
FindSpecFile(std::string_view file_name,
             const std::vector<std::filesystem::path> &search_paths =
                 gDefaultSearchPaths);

Функция sleigh::FindSpecFile будет искать в путях, предоставленных пользователем через аргумент search_paths, файл спецификации с именем file_name. Аргумент по умолчанию для search_paths — это sleigh::gDefaultSearchPaths, который содержит директории установки/сборки, сгенерированные во время конфигурации CMake, и набор общих мест установки.

Если вы не хотите собирать вспомогательные утилиты, вы должны установить опцию CMake-переменной sleigh_BUILD_SUPPORT в OFF во время конфигурации CMake.

Интеграция в качестве зависимости

Установка Sleigh предоставляет интерфейс CMake, который вы можете использовать при сборке вашего проекта.

Вы можете найти пример использования файла конфигурации пакета CMake в примере find_package.

Мы также предоставляем вспомогательную функцию CMake sleigh_compile для компиляции ваших файлов .slaspec с помощью компилятора sleigh.

Вы можете найти более сложный пример CMake с компиляцией спецификаций Sleigh в директории example, которая использует предоставленный вышестоящим проектом исходный код примера sleigh.

Наконец, вы можете найти установленные скомпилированные файлы sleigh через CMake-переменную sleigh_INSTALL_SPECDIR, которая является абсолютным путём к корневой директории для скомпилированных файлов sleigh — вам следует вручную проверить это, чтобы знать, чего ожидать.

Обращение к файлу конфигурации CMake и CMake-файлу specfiles также рекомендуется для изучения предоставляемых CMake-переменных и модулей.

Лицензия

См. файл LICENSE.

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