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

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

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

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

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

Категории

Все категории
Loading categories
dwarf2json — Преобразование информации о символах и типах ELF/DWARF в промежуточный JSON vol3 | Kitploit
Инструменты/GitHubGitHub/volatilityfoundation/dwarf2json
Криминалистика памятиОбратная инженерияЦифровая криминалистикаУтилиты и фреймворкиАнализ Бинарных Файлов
GitHubvolatilityfoundation/dwarf2json

dwarf2json

Преобразование информации о символах и типах ELF/DWARF в промежуточный JSON vol3

Репозиторий
157371 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Введение

dwarf2json — это утилита на Go, которая обрабатывает файлы, содержащие информацию о символах и типах, для генерации JSON-вывода Intermediate Symbol File (ISF) для Volatility3, подходящего для анализа Linux и macOS.

build

Для сборки (требуется Go 1.18+):

root@kitploit:~
  $ go build

Для запуска:

root@kitploit:~
  $ ./dwarf2json --help
  Usage: ./dwarf2json COMMAND

  A tool for generating intermediate symbol file (ISF)

  Commands:
    linux  generate ISF for Linux analysis
    mac    generate ISF for macOS analysis

  Options:
  -h, --help     Show this screen.
  -v, --version  Show tool and output schema version.

Примечание: обработка больших DWARF-файлов требует минимум 8 ГБ ОЗУ.

Обработка Linux

dwarf2json поддерживает обработку информации DWARF и таблиц символов из ELF-файлов, а также символов из входных файлов System.map для создания ISF для анализа Linux.

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

root@kitploit:~
  $ ./dwarf2json linux --help
  Usage: dwarf2json linux [OPTIONS]

        --elf PATH           ELF file PATH to extract symbol and type information
        --elf-symbols PATH   ELF file PATH to extract only symbol information
        --elf-types PATH     ELF file PATH to extract only type information
        --system-map PATH    System.Map file PATH to extract symbol information

Например, включить символы и типы для заданного DWARF-файла ядра Linux можно следующим образом:

root@kitploit:~
  $ ./dwarf2json linux --elf /usr/lib/debug/boot/vmlinux-4.4.0-137-generic > output.json

Смещения символов, извлечённых из информации таблицы символов, имеют приоритет над смещениями, извлечёнными из информации DWARF. Таким образом, символы, извлечённые из файлов, указанных с помощью флага --elf-symbols, имеют приоритет над символами, извлечёнными из файлов, указанных с помощью --elf. Смещения символов из System.Map, указанных с помощью флага --system-map, имеют наивысший приоритет. При конфликте между различными источниками информации о символах будет использовано смещение из System.Map.

Допускается указание нескольких входных файлов для одного флага. Например, ./dwarf2json --elf file1 --elf file2 ... обработает и file1, и file2. При обнаружении конфликтующей информации о символах или типах данные из последнего файла, указанного в команде, будут иметь приоритет.

Обработка MacOS

dwarf2json поддерживает обработку информации DWARF и таблиц символов из Mach-O файлов для создания ISF для анализа macOS.

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

root@kitploit:~
  $ ./dwarf2json mac --help
  Usage: dwarf2json mac [OPTIONS]

        --arch NAME            architecture for universal FAT files. NAME is one of {i386|x86_64}
        --macho PATH           Mach-O file PATH to extract symbol and type information
        --macho-symbols PATH   Mach-O file PATH to extract only symbol information
        --macho-types PATH     Mach-O file PATH to extract only type information

Например, включить символы и типы для заданного DWARF-файла ядра macOS и символы из ядра macOS можно следующим образом:

root@kitploit:~
  $ ./dwarf2json mac --macho /path/kernel.dSYM/Contents/Resources/DWARF/kernel \
    --macho-symbols /path/kernel > output.json

Смещения символов, извлечённых из информации таблицы символов, имеют приоритет над смещениями, извлечёнными из информации DWARF. Таким образом, символы, извлечённые из файлов, указанных с помощью флага --macho-symbols, имеют приоритет над символами, извлечёнными из файлов, указанных с помощью --macho.

Допускается указание нескольких входных файлов для одного флага. Например, ./dwarf2json --macho file1 --macho file2 ... обработает и file1, и file2. При обнаружении конфликтующей информации о символах или типах данные из последнего файла, указанного в команде, будут иметь приоритет.

При обработке универсальных FAT-бинарников Mach-O необходимо использовать флаг --arch для выбора архитектуры одного из встроенных Mach-O файлов.

Например, сгенерировать ISF JSON-файл для архитектуры i386 отладочного комплекта ядра OS X 10.7 можно следующим образом:

root@kitploit:~
  $ ./dwarf2json mac --arch i386 \
  --macho mach_kernel.dSYM/Contents/Resources/DWARF/mach_kernel \
  --macho-symbols mach_kernel > mach_kernel.json
Скачать инструмент