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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/gaasedelen/lighthouse
Статический анализДинамический анализ (песочница)Анализ уязвимостейАнализ КодаОбратная инженерияОтладчикиФаззингАнализ Бинарных ФайловСтатьи и Исследования
GitHubgaasedelen/lighthouse

lighthouse

Просмотрщик покрытия для реверс-инженеров

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

Популярное

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

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

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

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

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

Lighthouse — исследователь покрытия кода для реверс-инженеров

Lighthouse Plugin

Обзор

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

Этот проект занял 2-е место в конкурсе плагинов IDA 2017 года и позже был номинирован на премию Pwnie Awards 2021 за вклад в индустрию исследования безопасности.

Особая благодарность @0vercl0k за вдохновение.

Релизы

  • v0.9 -- Поддержка Python 3, пользовательские форматы покрытия, перекрёстные ссылки покрытия, подсистема тем, и многое другое.
  • v0.8 -- Поддержка Binary Ninja, HTML-отчёты о покрытии, единообразное оформление, множество улучшений, исправления ошибок.
  • v0.7 -- Frida, демагглинг C++, контекстное меню, префиксация функций, улучшения, исправления ошибок.
  • v0.6 -- Intel pintool, цикломатическая сложность, пакетная загрузка, исправления ошибок.
  • v0.5 -- Поиск, поддержка IDA 7, множество улучшений, стабильность.
  • v0.4 -- Большинство вычислений теперь асинхронны, исправления ошибок.
  • v0.3 -- Композиция покрытия, интерактивная оболочка композиции.
  • v0.2 -- Поддержка нескольких файлов, улучшения производительности, исправления ошибок.
  • v0.1 -- Первоначальный выпуск

Установка

Lighthouse — это кроссплатформенный (Windows, macOS, Linux) плагин для Python 2/3. Он не требует сторонних зависимостей, что делает код как портативным, так и простым в установке.

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

Установка в IDA

  1. В консоли Python в IDA выполните следующую команду, чтобы найти каталог плагинов:
    • import idaapi, os; print(os.path.join(idaapi.get_user_idadir(), "plugins"))
  2. Скопируйте содержимое папки /plugins/ этого репозитория в указанный каталог.
  3. Перезапустите дизассемблер.

Установка в Binary Ninja

Lighthouse можно установить через менеджер плагинов Binary Ninja, поддерживается версия v3.5 и новее.

  1. Откройте менеджер плагинов Binary Ninja, перейдя по следующим подменю:
    • Edit -> Preferences -> Manage Plugins
  2. Найдите Lighthouse в менеджере плагинов и нажмите кнопку Enable в правом нижнем углу.
  3. Перезапустите дизассемблер.

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

После правильной установки в дизассемблере появятся несколько новых пунктов меню. Это точки входа для загрузки данных покрытия и начала работы с Lighthouse.

Lighthouse Menu Entries

Lighthouse способен загружать несколько различных «разновидностей» данных покрытия. Чтобы сгенерировать данные покрытия, которые можно загрузить в Lighthouse, обратитесь к README в каталоге coverage этого репозитория.

Отрисовка покрытия

Во время работы Lighthouse «отрисовывает» активные данные покрытия во всех доступных средствах просмотра кода дизассемблера. В частности, это применяется к окнам линейного дизассемблирования, графов и декомпилятора.

Lighthouse Coverage Painting

В Binary Ninja поддерживаются только линейное дизассемблирование, граф и представления IL. Поддержка отрисовки вывода декомпилятора в Binary Ninja будет добавлена в Lighthouse в ближайшем будущем по мере стабилизации этой возможности.

Обзор покрытия

Обзор покрытия — это закрепляемый виджет, который открывается после загрузки покрытия в Lighthouse.

Lighthouse Coverage Overview

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

Контекстное меню

Щелчок правой кнопкой мыши по таблице в обзоре покрытия вызывает контекстное меню с несколькими базовыми возможностями для извлечения информации из таблицы или манипулирования базой данных в рамках процесса реверс-инжиниринга.

Lighthouse Context Menu

Если вы считаете, что в это контекстное меню стоит добавить какие-либо другие действия, создайте issue, и они будут рассмотрены для будущего выпуска Lighthouse.

Выпадающий список покрытия

Загруженное покрытие и созданные пользователем композиции можно выбирать или удалять через выпадающий список покрытия.

Lighthouse Coverage ComboBox

HTML-отчёт о покрытии

Lighthouse может генерировать базовые HTML-отчёты о покрытии. Пример отчёта можно посмотреть здесь.

Lighthouse HTML Report

Оболочка покрытия

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

Lighthouse Coverage Composition

Эта возможность чрезвычайно полезна при изучении взаимосвязей выполнения программы между несколькими запусками. Иными словами, оболочку можно использовать для «сравнения» выполнения между наборами покрытия и извлечения более глубокого смысла, который иначе скрыт в шуме их отдельных частей.

Синтаксис композиции

Композиция покрытия, или Composing, как показано выше, достигается с помощью простой грамматики выражений и «сокращённых» символов покрытия (от A до Z) в оболочке композиции.

Токены грамматики

  • Логические операторы: |, &, ^, -
  • Символ покрытия: A, B, C, ..., Z, *
  • Скобки: (...)

Примеры композиций

  1. Выполненный код, общий для покрытия A и покрытия B:
A & B
  1. Выполненный код, уникальный только для покрытия A:
A - B
  1. Выполненный код, уникальный для A или B, но не для C:
(A | B) - C

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

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