Я хочу скомпилировать и использовать Visual Studio для проверки неуправляемой программы C ++ в Windows. Я использую ADPlus и WinDBG. Для этого мне нужен файл .pdb amd для настройки символов моей отладки.
Как настроить его (на локальный компьютер, а не в сеть)?
Установить _NT_SYMBOL_PATH
в окружение, чтобы указать расположение ваших файлов PDB. См. Здесь для получения подробной информации, особенно. если вы хотите получать информацию о символах для библиотек NT в сеансах отладки.
Вы также можете динамически изменять путь к символу в графическом интерфейсе Windbg из меню Файл
, но это не сохраняется после закрытия WinDbg.
Создание новых таблиц символов¶
Это На странице подробно описано, как расположены и используются таблицы символов в Volatility, а также описаны инструменты и методы, которые можно использовать для создания новых таблиц символов.
Как Volatility находит таблицы символов¶
Все файлы хранятся как данные JSON, они могут быть в чистых файлах JSON как .json
или в сжатом виде .json.gz
или .json.xz
.Volatility автоматически распаковывает их при использовании. Он также будет кэшировать их содержимое (в сжатом виде) при использовании в домашнем каталоге пользователя в .cache/volatility3
вместе с другими полезными данными. Каталог кеша в настоящее время не может быть изменен.
Файлы JSON таблицы символов по умолчанию находятся в volatility/symbols
, в каталоге операционной системы (в настоящее время один из windows
, mac
или linux
). Каталог символов настраивается внутри фреймворка и обычно может быть установлен в пользовательском интерфейсе.
Эти файлы также могут быть сжаты в файлы ZIP, которые Volatility обработает для поиска файлов символов. ZIP-файл должен иметь название соответствующей операционной системы (например, linux.zip , mac.zip или windows.zip ) . Внутри ZIP-файла структура каталогов должна соответствовать несжатому каталогу операционной системы.
Таблицы символов Windows¶
Для Windows систем, Volatility принимает строку, состоящую из GUID и возраста требуемого файла PDB. Затем он выполняет поиск всех файлов в настроенных каталогах символов в подкаталоге Windows. Будет использоваться любой файл, соответствующий шаблону имени файла / - .json
(или любой сжатый вариант). Если такая таблица символов не может быть найдена, связанный файл PDB будет загружен с сервера символов Microsoft и преобразован в соответствующий формат JSON и будет сохранен в правильном месте.
Таблицы символов Windows могут быть создается вручную из соответствующего файла PDB. Основной инструмент для этого встроен в Volatility 3 и называется pdbconv.py
. Его можно запустить из пути Volatility верхнего уровня, используя следующую команду:
PYTHONPATH = «. «python volatility/framework/symbols/windows/pdbconv.py
Переменная среды PYTHONPATH
не требуется, если библиотека Volatility установлена в системный путь к библиотеке или виртуальная среда.
Таблицы символов Mac/Linux¶
Для систем Mac/Linux оба используют одно и то же механизм идентификации. Файлы JSON находятся в каталогах символов, в каталогах linux
или mac
. Сгенерированные файлы содержат идентифицирующую строку (баннер операционной системы) , который может обнаружить автоматическая магия Volatility. Volatility кэширует сопоставление между строками и таблицами символов, из которых они берутся, что означает, что точные имена файлов не имеют значения и могут быть организованы в рамках любой необходимой иерархии в каталоге операционной системы.
Таблицы символов Linux и Mac могут быть сгенерированы из файла DWARF с помощью инструмента под названием dwarf2json. В настоящее время ядро с отладочными символами является единственным подходящим средством для восстановления Обозначьте всю информацию, необходимую для большинства плагинов Volatility. Как только ядро с отладочными символами/соответствующий файл DWARF будет обнаружено, dwarf2json преобразует его в подходящий файл JSON.