
Инструмент для Windows для извлечения вредоносных PE-файлов из памяти обратно на диск для анализа.
Process Dump — это консольный инструмент обратной разработки для Windows, предназначенный для дампа компонентов памяти вредоносного ПО обратно на диск для анализа. Часто вредоносные файлы упакованы и обфусцированы перед выполнением, чтобы избежать обнаружения антивирусными сканерами, однако при запуске они нередко распаковывают или внедряют чистую версию вредоносного кода в память. Типичная задача исследователя вредоносного ПО при анализе — сдампить этот распакованный код из памяти на диск для сканирования антивирусными продуктами или для анализа инструментами статического анализа, такими как IDA.
Process Dump работает в 32- и 64-битных операционных системах Windows и может сдампливать компоненты памяти из конкретных процессов или из всех запущенных в данный момент процессов. Process Dump поддерживает создание и использование базы данных чистых хешей, что позволяет пропускать дамп известных файлов, таких как kernel32.dll. Основные возможности:
-closemon), при котором процессы с хуками приостанавливаются и сдампливаются непосредственно перед завершением.Я поддерживаю официальный скомпилированный релиз на своём сайте здесь: https://split-code.com/processdump.html
Вы можете скачать последний скомпилированный релиз Process Dump здесь:
Используйте pd64.exe в 64-битной Windows (рекомендуется) или pd32.exe в 32-битной Windows. Оба бинарных файла автономны; Microsoft Visual C++ Redistributable не требуется.
Process Dump может сдампливать весь неизвестный код из памяти (-system), сдампливать конкретные процессы или отслеживать процессы и сдампливать их перед завершением.
На чистой рабочей станции сгенерируйте базовую базу данных одной из команд:
pd64.exe -db genquickpd64.exe -db genЗапускайте генерацию базы данных и дамп отдельными командами. Для наилучшего доступа запускайте от имени администратора. Количество рабочих потоков по умолчанию — 16.
Примеры использования:
pd64.exe -systempd64.exe -pid 419pd64.exe -pid 0x1a3pd64.exe -pid 0x1a3 -a 0x401000 -o C:\dumpspd64.exe -p "chrome[.]exe"pd64.exe -p ".*chrome.*"pd64.exe -closemonОбщие параметры дампа
| Параметр | Описание |
|---|---|
-system | Сдампливает модули и отдельный код, не совпадающие с базой данных чистых хешей, из всех доступных процессов. |
-pid <pid> | Сдампливает конкретный процесс. Используйте десятичное значение или префикс 0x для шестнадцатеричного PID. |
-closemon | Устанавливает хуки на завершение процессов и сдампливает их перед выходом. Используйте в контролируемой среде; нажмите Ctrl+C для остановки. |
-p <regex> | Сдампливает процессы, полное имя которых соответствует регулярному выражению с учётом регистра. При нескольких совпадениях запрашивается подтверждение. |
-a <address> | Сдампливает по указанному базовому адресу. Требует -pid; принимает десятичное значение или шестнадцатеричное с префиксом 0x. |
-o <path> | Задаёт выходную папку (по умолчанию: текущий рабочий каталог). Создайте папку заранее; существующие файлы никогда не перезаписываются. |
Параметры базы данных чистых хешей
Файлы базы данных по умолчанию размещаются в каталоге приложения: clean.hashes, entrypoints.hashes и shortentrypoints.hashes.
| Параметр | Описание |
|---|---|
-db gen | Добавляет хеши из запущенных процессов и PE-файлов рекурсивно в %WINDIR%, %USERPROFILE%, C:\Program Files и C:\Program Files (x86). |
-db genquick | Добавляет хеши только из запущенных процессов. Быстрее, чем gen, но менее полный. |
-db add <dir> | Добавляет хеши PE-файлов из указанного каталога рекурсивно, включая сигнатуры точек входа. |
-db remove <dir>, -db rem <dir> | Удаляет соответствующие хеши чистых модулей из каталога рекурсивно. Сигнатуры точек входа сохраняются. |
-nr | Отключает рекурсию для команд добавления/удаления в базе данных. Не влияет на -db gen. |
-db clean | Очищает все три базы данных, включая сигнатуры точек входа. |
-db ignore | Игнорирует все три загруженные базы данных для этого дампа, не изменяя файлы. Повторяющиеся модули всё равно могут быть пропущены в рамках запуска. |
-cdb <filepath>, -c <filepath> | Задаёт путь к базе данных чистых хешей. |
-edb <filepath> | Задаёт путь к базе данных хешей точек входа. |
-esdb <filepath> | Задаёт путь к базе данных коротких хешей точек входа. |
Параметры вывода
| Параметр | Описание |
|---|---|
-v | Выводит подробную диагностику. |
-nh | Подавляет баннер версии/копирайта. |
--help, -help, -h, --h | Выводит справку и завершает работу. Запуск без аргументов также выводит справку. |
Дополнительные параметры
| Параметр | Описание |
|---|---|
-g | Принудительно генерирует как 32-битные, так и 64-битные PE-заголовки, игнорируя существующие заголовки. |
-eprec | Принудительно выполняет восстановление точки входа, даже если действительная точка входа существует. Восстановление эвристическое; неудачный поиск оставляет старое значение без изменений. |
-ni | Отключает агрессивную реконструкцию импортов (включена по умолчанию). |
-nc | Отключает дампинг и хеширование свободного кода (включено по умолчанию). |
-nep | Отключает восстановление точек входа и хеширование живых точек входа, переопределяя -eprec. Генерация файловой базы данных всё равно собирает сигнатуры точек входа. |
-reexec | Экспериментальная подготовка для повторного запуска дампов. Отбрасывает часть захваченного состояния и предполагает исходную компоновку секций; не запускает дамп и не гарантирует его работоспособность. По умолчанию отключено. |
-nt | Использует одного воркера, эквивалентно -t 1. Близкий мониторинг всё равно имеет отдельный поток мониторинга. |
-t <count> | Задаёт количество воркеров (по умолчанию 16, минимум 1) для дампинга системы, генерации базы данных и близкого мониторинга. Дампы по прямому PID/имени остаются синхронными. Побеждает последний -t/-nt. |
| Команда | Описание |
|---|---|
pd64.exe -db genquick | Быстро строит базовую линию из текущих запущенных процессов. |
pd64.exe -system -t 4 -o C:\dumps | Дамп неизвестных модулей и свободного кода с четырьмя воркерами в существующую выходную папку. |
pd64.exe -closemon | Работает в режиме монитора завершения. |
pd64.exe -pid 0x18A | Дамп модулей и свободного кода из конкретного процесса. |
pd64.exe -p ".*chrome.*" | Дамп процессов, имена которых содержат chrome. |
pd64.exe -db gen | Строит более полную базовую линию из запущенных процессов и общих папок. |
pd64.exe -db add C:\baseline -nr | Добавляет PE-файлы из каталога без поиска в подкаталогах. |
pd64.exe -pid 0x1a3 -a 0x401000 | Дамп по конкретному адресу. Если PE-заголовок отсутствует, генерирует как 32-битные, так и 64-битные заголовки. |
Для анализа вредоносного ПО используйте изолированную лабораторию и запускайте Process Dump от имени администратора: