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

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

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

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

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

Категории

Все категории
Loading categories
mole — Плагин для Binary Ninja, использующий обратное срезывание переменных в качестве движка для статического анализа распространения меток. | Kitploit
Инструменты/GitHubGitHub/cyber-defence-campus/mole
Статический анализАнализ уязвимостейАнализ КодаЭксплуатацияОбратная инженерияАнализ Бинарных ФайловОбратная Разработка с Помощью ИИ
GitHubcyber-defence-campus/mole

mole

Плагин для Binary Ninja, использующий обратное срезывание переменных в качестве движка для статического анализа распространения меток.

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

Популярное

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

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

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

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

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

Publish Release Release

Mole

Логотип Mole

Mole — это плагин для Binary Ninja, предназначенный для выявления интересных путей выполнения в бинарных файлах. Он выполняет обратный срез переменных, используя Binary Ninja's Medium Level Intermediate Language (MLIL) в форме Static Single Assignment (SSA), что является основой для статического анализа помеченных данных.

В Mole под путем понимается поток данных между заданными источником и стоком. Что именно считать «интересным» путем, зависит от целей анализа. Например, при поиске уязвимостей могут рассматриваться пути, где недоверенные входные данные (источники) влияют на чувствительные операции (стоки) потенциально опасным образом.

Ниже перечислены некоторые текущие возможности Mole:

  • Режим работы: Mole может запускаться как внутри пользовательского интерфейса Binary Ninja, так и в головном режиме. Головной режим особенно полезен для скриптового анализа большого количества бинарных файлов. С другой стороны, использование Mole через UI идеально для детального исследования обнаруженных путей.

  • Идентификация путей:

    • Настройка: Mole позволяет пользователям задавать функции-источники и функции-стоки через интерфейс Binary Ninja или файлы конфигурации (см. Использование). Это обеспечивает гибкость при выборе источников и стоков в зависимости от конкретного сценария использования.
    • Исследование: Для лучшего понимания пути и изучения его характеристик все инструкции вдоль пути могут быть выведены на экран или визуально выделены в Binary Ninja. Кроме того, можно отобразить сравнение двух путей рядом для быстрого выявления различий. Подобно инструкциям, последовательность вызовов функций вдоль пути может быть выведена или визуализирована в виде графа.
    • Группировка: Для упрощения идентификации похожих путей Mole поддерживает несколько стратегий группировки. В настоящее время пути можно группировать на основе совпадения функций-источников и стоков, либо по одинаковым последовательностям вызовов. Легко добавляются новые пользовательские стратегии группировки для расширения и настройки функциональности (см. Настройка).
    • Сохранение: Обнаруженные пути можно аннотировать для ясности или удалять, если они признаны нерелевантными. Для сохранения прогресса анализа пути могут быть сохранены непосредственно в базу данных целевого бинарного файла (формат .bndb Binary Ninja). Пути также можно экспортировать, например, при выполнении головного анализа на множестве бинарных файлов в файловой системе, чтобы позже импортировать их для более удобного исследования внутри Binary Ninja.
  • Анализ путей с помощью ИИ: Mole может взаимодействовать с локальными или удаленными Large Language Models (LLMs) через OpenAI API (см. Использование). Модели используются для анализа идентифицированных путей и оценки того, соответствует ли данный путь эксплуатируемой уязвимости. LLM пытается классифицировать уязвимость и назначить уровень критичности, что помогает расставить приоритеты для дальнейшего исследования аналитиком. Mole предоставляет базовый набор инструментов, которые LLM может использовать для запроса дополнительной информации об анализируемом бинарном файле.

  • Межпроцедурный срез переменных: Mole поддерживает срез MLIL-переменных через границы функций — задача, представляющая ряд сложностей. Например, статическое определение эффективных вызывающих субъектов функции часто затруднительно или даже невозможно. В результате реализованный подход является приближением. Хотя он не идеален, он достаточно хорошо работает в широком спектре практических сценариев.

  • Базовый анализ указателей: В настоящее время Mole реализует упрощенную стратегию отслеживания использования указателей. Как и межпроцедурный срез, этот подход является упрощением с присущими ограничениями (например, невозможность отслеживать глобальные переменные). Тем не менее, он хорошо работает во многих практических случаях, и в будущих версиях планируется его улучшение.

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

Посмотрите, как Mole раскрывает CVE-2021-4045 — неаутентифицированную уязвимость внедрения команд в IP-камере TP-Link Tapo C200 (нажмите на изображение ниже, чтобы посмотреть на YouTube):

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

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

  1. Установка
  2. Использование
  3. Настройка

Вклад или поделитесь опытом

Mole в настоящее время находится в стадии разработки. Если вы обнаружите ошибку, у вас есть полезный новый модульный тест, выявляющий ложноположительный или ложноотрицательный результат, или у вас есть предложение по новой функции, пожалуйста, рассмотрите возможность открыть issue или внести свой вклад через pull request. Также учтите, что текущие модульные тесты были проверены только на бинарных файлах linux-x86_64 и linux-armv7.

Если у вас есть интересная история успеха — например, вы нашли уязвимость с помощью Mole — мы будем рады услышать о ней! Не стесняйтесь поделиться своим опытом с нами.

Участники

  • Damian Pfammatter, Cyber-Defence Campus (armasuisse S+T)
  • Daniel Hulliger, Cyber-Defence Campus (armasuisse S+T)
  • Sergio Paganoni
Скачать инструмент