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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/gjduck/e9patch
Обратная инженерияФаззингАнализ Бинарных ФайловЭксплуатация Бинарных Файлов
GitHubgjduck/e9patch

e9patch

Мощный инструмент статической перезаписи бинарных файлов

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

Популярное

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

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

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

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

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

  E9Patch — Мощный инструмент для статической перезаписи бинарных файлов

E9Patch — это мощный инструмент для статической перезаписи бинарных файлов для x86_64 Linux ELF. E9Patch:

  • Масштабируем: E9Patch может надёжно перезаписывать большие/сложные бинарные файлы, включая веб-браузеры (размером >100 МБ).
  • Совместим: Перезаписанный бинарный файл является заменой оригинального без дополнительных зависимостей.
  • Быстр: E9Patch может перезаписывать большинство бинарных файлов за несколько секунд.
  • Низкие накладные расходы: Как производительности, так и памяти.
  • Программируем: E9Patch спроектирован так, чтобы его можно было легко интегрировать в другие проекты. См. Руководство пользователя E9Tool и Руководство программиста E9Patch для получения дополнительной информации.

Статическая перезапись бинарных файлов принимает входной бинарный файл (исполняемый ELF или общий объект) и генерирует выходной бинарный файл с применённым к нему патчем/модификацией. Пропатченный бинарный файл может использоваться как замена оригинального.

Релиз

Предварительно собранные бинарные файлы E9Patch можно скачать здесь:

  • https://github.com/GJDuck/e9patch/releases

Сборка

Собрать E9Patch очень просто: просто выполните скрипт build.sh.

Это автоматически соберёт два инструмента:

  1. e9patch: бэкенд для перезаписи бинарных файлов; и
  2. e9tool: фронтенд для линейной дизассемблеризации для E9Patch.

Пример использования

E9Patch можно использовать через фронтенд E9Tool.

Например, чтобы добавить инструментирование вывода инструкций для всех инструкций xor в xterm, мы можем использовать следующую команду:

root@kitploit:~
    $ ./e9tool -M 'asm=/xor.*/' -P print xterm

Это создаст модифицированную версию xterm, записанную в файл a.out.

Модифицированный xterm можно запускать как обычно, но он будет выводить строку ассемблера каждой выполненной инструкции xor в stderr:

root@kitploit:~
    $ ./a.out
    xorl %ebp, %ebp
    xorl %ebx, %ebx
    xorl %eax, %eax
    xorl %edx, %edx
    xorl %edi, %edi
    ...

Для полного списка поддерживаемых опций и режимов смотрите:

root@kitploit:~
    $ ./e9tool --help

Проекты

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

  • RedFat: Система усиления безопасности бинарных файлов на основе low-fat pointers.
  • E9AFL: Автоматическая вставка инструментирования AFL в бинарные файлы.
  • E9Syscall: Перехват системных вызовов с помощью статической перезаписи бинарных файлов libc.so.
  • Hopper: Автоматическая генерация тестовых случаев для фацзинга библиотек.
  • EnvFuzz: Фаззинг окружения программы.
  • RFF: Серый ящик фацзинга для тестирования конкурентности.
  • AutoTrace: Простое трассирование на основе исходных строк.

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

E9Patch — это низкоуровневый инструмент, предназначенный для интеграции в другие проекты. Чтобы узнать больше, пожалуйста, ознакомьтесь со следующей документацией:

  • Руководство программиста E9Patch
  • Руководство пользователя E9Tool

Ошибки

Сообщать об ошибках можно здесь:

  • https://github.com/GJDuck/e9patch/issues

Версии

Текущая версия E9Patch значительно улучшена по сравнению с оригинальным прототипом, оценённым в статье PLDI'2020. В частности:

  • Текущая версия реализует несколько новых оптимизаций и может генерировать значительно более быстрые бинарные файлы, иногда до 2 раз. Чтобы включить новые оптимизации, передайте опцию -O2 в E9Tool.
  • Реализация оптимизации пространства Physical Page Grouping также была улучшена.
  • Покрытие патчинга также немного улучшено.
  • Реализовано множество новых функций (см. документацию).

Лицензия

Это программное обеспечение выпущено под лицензией GNU Public License (GPL) Версия 3.

Некоторые отдельные файлы выпущены под лицензией MIT (проверьте преамбулу файла).

Публикация

Для получения дополнительной информации, пожалуйста, ознакомьтесь с нашей статьёй PLDI'2020:

  • Gregory J. Duck, Xiang Gao, Abhik Roychoudhury, Binary Rewriting without Control Flow Recovery, Programming Language Design and Implementation (PLDI), 2020.
  • Презентация PLDI'2020 на Youtube

Пожалуйста, цитируйте нашу статью следующим образом:

root@kitploit:~
    @inproceedings{e9patch,
        author = {Duck, Gregory J. and Gao, Xiang and Roychoudhury, Abhik},
        title = {Binary rewriting without control flow recovery},
        year = {2020},
        publisher = {Association for Computing Machinery},
        url = {https://doi.org/10.1145/3385412.3385972},
        doi = {10.1145/3385412.3385972},
        booktitle = {Programming Language Design and Implementation (PLDI)}
    }

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

Эта работа была частично поддержана Национальным центром передового опыта в области надёжных программных систем, финансируемым Национальным исследовательским фондом (NRF) Сингапура в рамках Национальной программы исследований и разработок в области кибербезопасности (NCR).

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