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

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

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

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

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

Категории

Все категории
Loading categories
ddisasm — Дисассемблер на основе Datalog, создающий повторно собираемый ассемблер из ELF/PE-бинарных файлов, с промежуточным представлением GTIRB для анализа и перезаписи бинарного кода в архитектурах x86, ARM и MIPS. | Kitploit
Инструменты/GitHubGitHub/grammatech/ddisasm
Статический анализОбратная инженерияОтладчикиАнализ Бинарных ФайловАнализ Прошивок
GitHubgrammatech/ddisasm

ddisasm

Дисассемблер на основе Datalog, создающий повторно собираемый ассемблер из ELF/PE-бинарных файлов, с промежуточным представлением GTIRB для анализа и перезаписи бинарного кода в архитектурах x86, ARM и MIPS.

Репозиторий
853681 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

Datalog Disassembly

DDisasm — это быстрый дизассемблер, достаточно точный для того, чтобы полученный ассемблерный код можно было повторно собрать. DDisasm реализован с использованием декларативного языка логического программирования datalog (souffle) для компиляции правил и эвристик дизассемблирования. Дизассемблер сначала анализирует информацию из ELF/PE-файлов и декодирует надмножество возможных инструкций для создания начального набора фактов datalog. Эти факты анализируются для выявления расположения кода, символизации и границ функций. Результаты этого анализа — уточнённый набор фактов datalog — затем преобразуются в промежуточное представление GTIRB для двоичного анализа и обратной разработки. Затем можно использовать pretty printer GTIRB для форматированного вывода GTIRB в пересобираемый ассемблерный код.

Поддержка бинарных форматов

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

  • ELF (Linux)
  • PE (Windows)

Архитектуры набора команд (ISA):

  • x86_32
  • x86_64
  • ARM32
  • ARM64
  • MIPS32

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

Вы можете запустить предварительно собранную версию Ddisasm с помощью Docker:

root@kitploit:~
docker pull grammatech/ddisasm:latest

Ddisasm можно использовать для дизассемблирования бинарного файла в представление GTIRB. Мы можем попробовать это на одном из примеров, включённых в репозиторий.

Сначала запустите контейнер Ddisasm Docker:

root@kitploit:~
docker run -v $PWD/examples:/examples -it grammatech/ddisasm:latest

Внутри контейнера Docker соберём один из примеров:

root@kitploit:~
apt update && apt install gcc -y
cd /examples/ex1
gcc ex.c -o ex

Теперь можно приступить к дизассемблированию:

root@kitploit:~
ddisasm ex --ir ex.gtirb

После получения представления GTIRB вы можете программно изменять бинарный файл с помощью GTIRB или gtirb-rewriting.

Затем можно использовать gtirb-pprinter (входит в образ Docker) для создания новой версии бинарного файла:

root@kitploit:~
gtirb-pprinter ex.gtirb -b ex_rewritten

Внутри gtirb-pprinter сгенерирует ассемблерный файл и вызовет компилятор/ассемблер (например, gcc) для создания нового бинарного файла. gtirb-pprinter сам позаботится о генерации всех необходимых параметров командной строки для создания нового бинарного файла, включая параметры компиляции, зависимости библиотек или скрипты компоновщика версий.

Вы также можете использовать gtirb-pprinter для создания листинга на ассемблере для ручного редактирования:

root@kitploit:~
gtirb-pprinter ex.gtirb --asm ex.s

Этот листинг затем можно вручную перекомпилировать:

root@kitploit:~
gcc -nostartfiles ex.s -o ex_rewritten

Пожалуйста, ознакомьтесь с нашей документацией для получения дополнительной информации.

Документация

Участие в разработке

См. CONTRIBUTING.md

Внешние участники

  • Programming Language Group, The University of Sydney: начальная поддержка ARM64.
  • Пользователь GitHub gogo2464: рефакторинг документации.

Цитирование

  1. Datalog Disassembly
root@kitploit:~
@inproceedings {flores-montoya2020,
    author = {Antonio Flores-Montoya and Eric Schulte},
    title = {Datalog Disassembly},
    booktitle = {29th USENIX Security Symposium (USENIX Security 20)},
    year = {2020},
    isbn = {978-1-939133-17-5},
    pages = {1075--1092},
    url = {https://www.usenix.org/conference/usenixsecurity20/presentation/flores-montoya},
    publisher = {USENIX Association},
    month = aug,
}
  1. GTIRB
root@kitploit:~
@misc{schulte2020gtirb,
    title={GTIRB: Intermediate Representation for Binaries},
    author={Eric Schulte and Jonathan Dorn and Antonio Flores-Montoya and Aaron Ballman and Tom Johnson},
    year={2020},
    eprint={1907.02859},
    archivePrefix={arXiv},
    primaryClass={cs.PL}
}
  1. Ddisasm WIS
root@kitploit:~
@INPROCEEDINGS{11023516,
  author={Flores-Montoya, Antonio and Lim, Junghee and Seitz, Adam and Sood, Akshay and Raff, Edward and Holt, James},
  booktitle={2025 IEEE Symposium on Security and Privacy (SP)},
  title={Disassembly as Weighted Interval Scheduling with Learned Weights},
  year={2025},
  volume={},
  number={},
  pages={3033-3050},
  keywords={Measurement;Privacy;Accuracy;Heuristic algorithms;Reverse engineering;Binary codes;Benchmark testing;Scheduling;Inference algorithms;Security;disassembly;reverse engineering;learning;binary analysis},
  doi={10.1109/SP61157.2025.00192}}
Скачать инструмент