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

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

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

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

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

Категории

Все категории
Loading categories
Cartographer — Плагин для изучения покрытия кода в Ghidra | Kitploit
Инструменты/GitHubGitHub/nccgroup/cartographer
Динамический анализ кода (DAST)Обратная инженерияАнализ Бинарных Файлов
GitHubnccgroup/cartographer

Cartographer

Плагин для изучения покрытия кода в Ghidra

Репозиторий
382352 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Cartographer

Картографирование покрытия кода

Version Build Status License
Watchers Stars Downloads

Разработано Austin Peavy - https://github.com/aus10pv

Выпущено как открытое программное обеспечение компанией NCC Group Plc - https://www.nccgroup.com/
Выпущено под лицензией Apache 2.0 (см. LICENSE для получения дополнительной информации)

Интерфейс Cartographer

Описание

Cartographer — это плагин для Ghidra, предназначенный для картографирования покрытия кода, позволяющий исследователям наблюдать, какие части программы были выполнены, без необходимости наличия исходного кода.

Оглавление

  • Ключевые возможности
  • Установка
    • Загрузка плагина
  • Использование
    • Загрузка файлов покрытия кода
    • Детали покрытия кода
    • Переключение между покрытиями
    • Парсер выражений
      • Синтаксис
      • Примеры
  • Участие в разработке
    • Сборка из исходного кода
    • Сообщение об ошибках
  • Авторы

Ключевые возможности

  • Подсвечивает исполненный код
    • Граф функций
    • Представление дизассемблирования (Listing)
    • Представление декомпилятора
  • Полностью настраиваемые цвета
  • Поддержка тем Ghidra
  • Загрузка файлов DRCOV и пользовательских файлов EZCOV
    • См. EZCOV.md для получения подробной информации о формате EZCOV
  • Предоставляет подробный обзор покрытия функций
    • Включает тепловую карту, показывающую, какая часть каждой функции была выполнена
  • Быстрое переключение между загруженными файлами покрытия
  • Поиск функций по имени
  • Фильтрация результатов по объёму покрытия и другим параметрам
  • Мощный парсер выражений
    • Выполнение логических операций над несколькими загруженными покрытиями
  • Поддержка покрытия в разных адресных пространствах

Установка

Последнюю стабильную версию Cartographer можно загрузить со страницы Releases.

Загрузка плагина

  1. Запустите Ghidra.
  2. Перейдите в окно Install Extensions.
    • File -> Install Extensions...
  3. Нажмите на зелёный значок "+" в правом верхнем углу.
  4. Выберите загруженный ZIP-файл, чтобы загрузить плагин в Ghidra.
  5. Нажмите кнопку "OK", чтобы выйти из окна Install Extensions.
  6. Перезапустите Ghidra, когда будет предложено.

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

После загрузки плагина в окне CodeBrowser появятся дополнительные элементы управления для работы с данными покрытия кода.

Загрузка файлов покрытия кода

Файлы покрытия кода можно загрузить через меню Tools: Tools -> Code Coverage -> Load Code Coverage File(s)...

Когда файл покрытия кода загружен, все данные покрытия немедленно подсвечиваются в представлении Listing и в представлении Decompiler.

Загрузка файла покрытия кода

Детали покрытия кода

Подробная информация о данных покрытия для каждой функции доступна в окне Code Coverage.

Окно Code Coverage можно открыть, перейдя в Window -> Code Coverage, или нажав Ctrl-Shift-C в Windows (Cmd-Shift-C в Mac).

В этом окне отображаются различные сведения о каждой функции в программе:

  • Coverage %: процент выполнения функции
  • Name: имя функции
  • Address: адрес (точка входа) функции
  • Blocks Hit: количество выполненных базовых блоков
  • Instructions Hit: количество выполненных инструкций
  • Function Size: размер функции в байтах

Щелчок по любой функции приведёт к переходу к указанной функции в представлениях Listing и Decompiler.

Открытие окна Code Coverage

Поиск и фильтрация

Поле ввода Filter можно использовать для поиска функции по имени.

Любые данные, отображаемые в таблице покрытия, можно использовать в качестве фильтра столбца.

Поиск и фильтрация данных

Переключение между покрытиями

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

Переключение между покрытиями

Парсер выражений

Текстовое поле в нижней части окна Code Coverage можно использовать для выполнения логических операций над загруженными файлами покрытия кода.

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

Использование парсера выражений

Синтаксис

Ниже приведены логические операторы, которые можно использовать в парсере выражений.

  • &: получает только код, исполненный в обоих покрытиях
  • |: получает любой код, исполненный в любом из покрытий
  • ^: получает только исполненный код, который различается между покрытиями
  • -: получает только исполненный код, который является уникальным для левого покрытия

Покрытия обозначаются их буквенными идентификаторами в раскрывающемся списке, например A, B, XY и т.д.

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

Примеры

  1. Показать код, который был исполнен в обоих покрытиях A и B:

    root@kitploit:~
    A & B
    
  2. Показать исполненный код, который различался между покрытиями A и B:

    root@kitploit:~
    A ^ B
    
  3. Показать код, который был исполнен только в B:

    root@kitploit:~
    B - A
    
  4. Объединить все данные покрытия, найденные в A и B, затем найти любые различия с C:

    root@kitploit:~
    (A | B) ^ C
    

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

Сборка из исходного кода

Для сборки Cartographer из исходного кода можно использовать Gradle.

  1. Клонируйте репозиторий Cartographer на GitHub.

    root@kitploit:~
    $ git clone https://github.com/nccgroup/Cartographer.git
    
  2. Перейдите в репозиторий и выполните сборку с помощью gradle.

    root@kitploit:~
    $ cd Cartographer
    $ gradle -PGHIDRA_INSTALL_DIR=<ghidra_install_dir>
    
    • Замените <ghidra_install_dir> на путь к вашей локальной установке Ghidra.
  3. После сборки ZIP-файл плагина будет находиться в папке dist/.

Сообщение об ошибках

Если вы нашли ошибку в Cartographer, пожалуйста, создайте issue через GitHub.

Авторы

Изначально вдохновлено проектом Lighthouse - https://github.com/gaasedelen/lighthouse

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