Ведущий open source фреймворк для forensics памяти. Анализирует дампы оперативной памяти Windows, Linux и macOS — извлекает процессы, сетевые соединения, артефакты вредоносного ПО. Возможности: - Поддержка дампов: Windows 7–11, Linux (любой дистрибутив), macOS - 100+ плагинов: pslist, pstree, cmdline, netscan, malfind, dumpfiles - Обнаружение инжектированного кода (hollowing, reflective loading) - Извлечение: хешей паролей (hashdump), реестра, драйверов, SSL-ключей - Анализ сетевых соединений и сокетов - Автоматическое определение профиля (ОС, версия, битность) - Написан на Python 3, активно поддерживается Volatility Foundation
# pip: pip install volatility3 # из репозитория: git clone https://github.com/volatilityfoundation/volatility3 cd volatility3 pip install -r requirements.txt # Примеры: # Список процессов: python3 vol.py -f memory.dmp windows.pslist # Дерево процессов: python3 vol.py -f memory.dmp windows.pstree # Сетевые соединения: python3 vol.py -f memory.dmp windows.netscan # Поиск инжектированного кода: python3 vol.py -f memory.dmp windows.malfind # Извлечь хеши паролей: python3 vol.py -f memory.dmp windows.hashdump # Linux: python3 vol.py -f linux.dmp linux.pslist
Volatility является наиболее широко используемым в мире фреймворком для извлечения цифровых артефактов из образов оперативной памяти (ОЗУ). Техники извлечения выполняются полностью независимо от исследуемой системы, но обеспечивают видимость состояния системы во время выполнения. Этот фреймворк предназначен для того, чтобы познакомить людей с техниками и сложностями, связанными с извлечением цифровых артефактов из образов оперативной памяти, и предоставить платформу для дальнейшей работы в этой захватывающей области исследований.
В 2019 году Фонд Volatility выпустил полную переработку фреймворка — Volatility 3. Проект был призван решить многие технические и производственные проблемы, связанные с исходным кодом, которые стали очевидны за предыдущие 10 лет. Еще одним преимуществом переработки является то, что Volatility 3 мог быть выпущен под пользовательской лицензией, которая больше соответствовала целям сообщества Volatility — Лицензией программного обеспечения Volatility (VSL). Подробности смотрите в файле LICENSE.
Установите необходимые зависимости:
shell
pip install --user -e ".[full]"
Просмотрите доступные опции:
shell
vol -h
Чтобы получить больше информации об образе памяти Windows и убедиться, что Volatility поддерживает этот тип образа, выполните команду vol -f <imagepath> windows.info:
shell
vol -f /home/user/samples/stuxnet.vmem windows.info
Запустите некоторые другие плагины. Параметр -f или --single-location не строго обязателен, но большинство плагинов ожидают один образ.
Некоторые также требуют/принимают другие опции. Выполните vol <plugin> -h для получения дополнительной информации о конкретной команде.
Volatility 3 требует Python 3.8.0 или более поздней версии и опубликован в реестре PyPi.
pip install volatility3
Если вы хотите использовать последнюю разрабатываемую версию Volatility 3, мы рекомендуем вручную клонировать этот репозиторий и устанавливать редактируемую версию проекта. Мы рекомендуем использовать виртуальное окружение, чтобы установленные зависимости не конфликтовали с системными пакетами.
Последняя стабильная версия Volatility всегда находится в ветке stable репозитория GitHub. Ветка по умолчанию — develop.
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3/
python3 -m venv venv && . venv/bin/activate
pip install -e ".[dev]"
Пакеты таблиц символов для различных операционных систем доступны для загрузки по ссылкам:
Хеши для проверки успешной загрузки или изменения файлов пакетов символов можно найти по ссылкам:
ZIP-файлы таблиц символов должны быть размещены с сохранением именования в директорию volatility3/symbols (или просто в директорию symbols, расположенную рядом с исполняемым файлом).
Символы Windows, которые не удается найти, будут запрошены, загружены, сгенерированы и кэшированы. Таблицы символов Mac и Linux должны быть созданы вручную с помощью такого инструмента, как dwarf2json.
Важно: Первый запуск Volatility с новыми файлами символов потребует обновления кэша. Пакеты символов содержат большое количество файлов, поэтому обновление может занять некоторое время! Однако этот процесс необходимо выполнить только один раз для каждого нового файла символов, поэтому, при условии, что пакет остается в том же месте, повторять его больше не придется. Также обратите внимание, что процесс может быть прерван, и при следующем запуске он возобновится автоматически.
Обратите внимание: Эти пакеты являются репрезентативными и полны на момент их создания для Windows и Mac. Из-за легкости компиляции ядер Linux и невозможности их уникального различия, исчерпывающий набор таблиц символов для Linux не может быть легко предоставлен.
Документация к фреймворку предоставляется через строки документации (doc strings) и может быть построена с помощью sphinx.
Последняя сгенерированная копия документации доступна по адресу: https://volatility3.readthedocs.io/en/latest/
Copyright (C) 2007-2026 Volatility Foundation
Все права защищены
https://www.volatilityfoundation.org/license/vsl-v1.0
Если вы считаете, что нашли ошибку, пожалуйста, сообщите о ней по адресу:
https://github.com/volatilityfoundation/volatility3/issues
Чтобы помочь нам решить вашу проблему как можно скорее, при создании отчета об ошибке, пожалуйста, включите следующую информацию:
Для получения поддержки от сообщества, пожалуйста, присоединяйтесь к нам в Slack:
https://www.volatilityfoundation.org/slack
Для получения информации или запросов свяжитесь с:
Volatility Foundation
Веб: https://www.volatilityfoundation.org
Блог: https://volatility-labs.blogspot.com
Электронная почта: volatility (at) volatilityfoundation (dot) org
Twitter: @volatility