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

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

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

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

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

Категории

Все категории
Loading categories
Process-Dump — Инструмент для Windows для извлечения вредоносных PE-файлов из памяти обратно на диск для анализа. | Kitploit
Инструменты/GitHubGitHub/glmcdona/process-dump
Криминалистика памятиОбратная инженерияФорензикаАнализ вредоносных программАнализ Бинарных Файлов
GitHubglmcdona/process-dump

Process-Dump

Инструмент для Windows для извлечения вредоносных PE-файлов из памяти обратно на диск для анализа.

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

Популярное

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

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

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

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

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

Process Dump

Process Dump — это инструмент командной строки для реверс-инжиниринга Windows, предназначенный для дампа компонентов памяти вредоносных программ обратно на диск для анализа. Часто вредоносные файлы упакованы и обфусцированы перед выполнением, чтобы избежать обнаружения антивирусными сканерами, однако при исполнении они часто распаковываются или внедряют чистую версию вредоносного кода в память. Обычная задача исследователей вредоносных программ при анализе — дамп этого распакованного кода из памяти на диск для сканирования антивирусными продуктами или для анализа статическими средствами, такими как IDA.

Process Dump работает в 32- и 64-разрядных версиях Windows и может сбрасывать компоненты памяти из определённых процессов или из всех запущенных процессов. Process Dump поддерживает создание и использование базы данных чистых хешей, чтобы можно было пропускать дамп всех чистых файлов, таких как kernel32.dll. Его основные возможности включают:

  • Дамп кода из конкретного процесса или всех процессов.
  • Поиск и дамп скрытых модулей, которые не загружены должным образом в процессах.
  • Поиск и дамп свободных фрагментов кода, даже если они не связаны с PE-файлом. Создаётся PE-заголовок и таблица импорта для этих фрагментов.
  • Восстановление импортов с использованием агрессивного подхода.
  • Возможность работы в режиме мониторинга закрытия ('-closemon'), при котором процессы приостанавливаются и сбрасываются непосредственно перед завершением.
  • Многопоточность, поэтому при дампе всех запущенных процессов всё происходит довольно быстро.
  • Возможность создания базы данных чистых хешей. Создайте её до заражения машины вредоносным ПО, чтобы Process Dump сбрасывал только новые вредоносные компоненты.

Я поддерживаю официальную скомпилированную версию на своём сайте: https://split-code.com/processdump.html

Установка

Вы можете загрузить последнюю скомпилированную версию Process Dump здесь:

  • https://github.com/glmcdona/Process-Dump/releases

Компиляция исходного кода

Она предназначена для Visual Studio 2019 и работает с бесплатной версией Community. Просто откройте файл проекта в VS2019 и скомпилируйте — всё должно быть просто!

Аргументы командной строки

Process dump можно использовать для дампа всего неизвестного кода из памяти (флаг '-system'), дампа определённых процессов или для работы в режиме мониторинга, который сбрасывает все процессы непосредственно перед их завершением.

Перед первым использованием этого инструмента на чистой рабочей станции можно сгенерировать базу данных чистых хешей, выполнив:

  • pd -db genquick
  • pd -db gen

Примеры использования:

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

Аргументы командной строки можно сгруппировать следующим образом:

Общие параметры дампа

Параметры базы данных чистых хешей

Параметры вывода

ОпцияОписание
-vПодробный режим, при котором выводится больше информации для отладки.
-nhЗаголовок не выводится.

Расширенные параметры

Примеры использования

Конечно, вот более сжатая версия информации:

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

При использовании Process Dump в автоматизированной песочнице или для ручного анализа вредоносных программ могут быть полезны следующие шаги. Убедитесь, что все команды выполняются от имени администратора в чистой среде.

  • Создание базы данных чистых хешей: Выполните pd64.exe -db gen или для более быстрого, но менее полного процесса используйте pd64.exe -db genquick. В зависимости от ситуации, возможно, вы захотите создать снимок вашей виртуальной машины после создания этой базы данных чистых хешей, чтобы не повторять это каждый раз.

  • Запуск монитора завершения Process Dump: Держите pd64.exe -closemon работающим в фоне. Он будет сбрасывать все промежуточные процессы, используемые вредоносным ПО.

  • Запуск вредоносного файла: Наблюдайте за установкой вредоносного ПО. pd64.exe автоматически сбросит любой процесс, который попытается закрыться.

  • Дамп работающего вредоносного ПО из памяти: Когда будете готовы, используйте pd64.exe -system для дампа всех процессов.

Сброшенные компоненты будут находиться в рабочем каталоге pd64.exe. Чтобы изменить путь вывода, используйте флаг -o.

Примечания о соглашении об именах сброшенных модулей:

  • 'hiddemodule' в имени файла вместо имени модуля означает, что модуль не был должным образом зарегистрирован в процессе.
  • 'codechunk' в имени файла означает, что это восстановленный дамп из свободной исполняемой области. Это может быть, например, внедрённый код, не имеющий PE-заголовка. Codechunks будут сброшены дважды: один раз с восстановленным x86 и ещё раз с восстановленным x64 заголовком.

Примеры имён файлов сброшенных файлов:

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

История версий

Версия 2.1 (12 февраля 2017)

  • Исправлена ошибка, из-за которой последняя секция в некоторых случаях заполнялась нулями. Спасибо megastupidmonkey за сообщение об этой проблеме.
  • Исправлена ошибка, из-за которой 64-разрядные базовые адреса усекались до 32-разрядного адреса. Теперь полный 64-разрядный базовый адрес модуля сохраняется корректно. Спасибо megastupidmonkey за сообщение об этой проблеме.
  • Решена проблема, из-за которой монитор закрытия дампа процессов приводил к сбою csrss.exe.
  • Process Dump больше не перехватывает собственный процесс в режиме мониторинга закрытия.

Версия 2.0 (18 сентября 2016)

  • Добавлен новый флаг '-closemon', запускающий Process Dump в режиме мониторинга. Он приостанавливает и сбрасывает любой процесс непосредственно при его закрытии. Это разработано для работы в песочницах анализа вредоносных программ, чтобы гарантировать дамп вредоносного ПО из памяти до завершения вредоносного процесса.
  • Process Dump обновлён до многопоточного режима. Команды, которые сбрасывают или получают хеши из нескольких процессов, будут запускать отдельные потоки для каждой операции. Количество потоков по умолчанию — 16, что значительно ускоряет обработку общего дампа Process Dump.
  • Process Dump обновлён для сброса неприкреплённых фрагментов кода, найденных в памяти. Они идентифицируются как исполняемые области в памяти, которые не прикреплены к модулю и не имеют PE-заголовка. Также требуется, чтобы фрагмент кода ссылался как минимум на 2 импорта, чтобы считаться действительным, для уменьшения шума. При сбросе создаётся PE-заголовок вместе с таблицей импорта. Фрагменты кода полностью поддерживаются базой данных чистых хешей.
  • Добавлены флаги для управления путём к файлу базы данных чистых хешей и выходной папке для сброшенных файлов.
  • Исправление ошибки при генерации базы данных чистых хешей из пользовательского пути, вызывавшей сбой.
  • Исправление флага '-g', который принудительно создаёт PE-заголовки. Ранее, даже если этот флаг был установлен, системные дампы (-system) игнорировали его при дампе процесса.
  • Различные улучшения производительности.
  • Проект обновлён до VS2015.

Версия 1.5 (21 ноября 2015)

  • Исправлена ошибка, из-за которой очень большие области памяти приводили к зависанию Process Dump.
  • Исправлена ошибка, из-за которой некоторые модули по высоким адресам не обнаруживались в 64-разрядной Windows.
  • В подробном режиме теперь выводится больше отладочной информации.

Версия 1.4 (18 апреля 2015)

  • Добавлен новый агрессивный подход к восстановлению импортов. Теперь все DWORD и QWORD в модуле корректируются в соответствии с соответствующей экспортной сигнатурой.
  • Добавлен флаг '-a (адрес для дампа)' для сброса конкретного адреса. Он создаёт PE-заголовки и строит таблицу импорта для этого адреса.
  • Добавлен флаг '-ni' для пропуска нового алгоритма восстановления импортов.
  • Добавлен флаг '-g' для принудительного создания нового PE-заголовка, даже если он существует при дампе модуля. Это полезно, например, если PE-заголовок повреждён.
  • Различные исправления ошибок.

Версия 1.3 (10 октября 2013)

  • Улучшена обработка PE-заголовков с секциями, указывающими недопустимые виртуальные размеры и адреса.
  • Улучшена методология дампа модулей для сброса виртуальных секций в секции диска.

Версия 1.1 (8 апреля 2013)

  • Исправлена проблема совместимости с Windows XP.
  • Исправлена ошибка, из-за которой process dump выводил сообщение о дампе модуля, но фактически не сбрасывал его.
  • Реализован флаг дампа '-pid'.

Версия 1.0 (2 апреля 2013)

  • Первоначальный выпуск.
Скачать инструмент
ОпцияОписание
-systemСбрасывает все модули, не совпадающие с базой данных чистых хешей, из всех доступных процессов в рабочий каталог.
-pid <pid>Сбрасывает все модули, не совпадающие с базой данных чистых хешей, из указанного PID в текущий рабочий каталог. Используйте префикс '0x' для задания PID в шестнадцатеричном формате.
-closemonЗапускает режим мониторинга. Когда какой-либо процесс завершается, process dump сбрасывает этот процесс перед завершением.
-p <regex имя процесса>Сбрасывает все модули, не совпадающие с базой данных чистых хешей, из процесса, имя которого соответствует фильтру, в указанный PID и текущий рабочий каталог.
-a <базовый адрес модуля>Сбрасывает модуль по указанному базовому адресу из процесса.
-o <путь>Задаёт корневую папку вывода по умолчанию для сброшенных компонентов.
ОпцияОписание
-db genАвтоматически обрабатывает несколько общих папок, а также все текущие запущенные процессы и добавляет хеши найденных модулей в базу данных чистых хешей. Рекурсивно добавляются все файлы в: %WINDIR%, %HOMEPATH%, C:\Program Files\, C:\Program Files (x86)\, а также все модули во всех запущенных процессах. Эти чистые хеши будут добавлены в файл clean.hashes в каталоге приложения. При последующих командах дампа процессов эти известные модули не будут сбрасываться. Рекомендуется выполнить эту команду один раз на чистой системе перед использованием инструмента, чтобы не сбрасывать слишком много модулей из памяти.
-db genquickТо же, что и выше, но добавляет в базу данных чистых хешей только хеши всех модулей во всех процессах. Это гораздо более быстрый способ построения базы данных чистых хешей, но он будет менее полным.
-db add <каталог>Рекурсивно добавляет все файлы в указанном каталоге в базу данных чистых хешей.
-db rem <каталог>Рекурсивно удаляет все файлы в указанном каталоге из базы данных чистых хешей.
-nrОтключает рекурсию при добавлении или удалении каталога из базы данных хешей.
-db cleanОчищает базу данных чистых хешей.
-db ignoreИгнорирует базу данных чистых хешей при дампе процесса в этот раз. Все модули будут сброшены, даже если найдено совпадение.
-cdb <путь>Полный путь к файлу базы данных чистых хешей для использования в этом запуске, если необходимо переопределить значение по умолчанию clean.hashes.
-edb <путь>Полный путь к файлу базы данных хешей точек входа для использования в этом запуске.
-esdb <путь>Полный путь к файлу базы данных коротких хешей точек входа для использования в этом запуске.
ОпцияОписание
-gПринудительно создаёт PE-заголовки с нуля, игнорируя существующие заголовки.
-eprecПринудительно восстанавливает точку входа, даже если кажется, что существует действующая.
-niОтключает восстановление импортов.
-ncОтключает дамп свободных областей кода.
-ntОтключает многопоточность.
-nepОтключает хеширование точки входа.
-t <количество потоков>Устанавливает количество используемых потоков (по умолчанию 16).
КомандаОписание
pd64.exe -db genquickБыстрое создание базы данных чистых модулей на основе текущих запущенных процессов. В дальнейших задачах Process Dump будет сбрасывать только нераспознанные модули.
pd64.exe -systemДамп всех модулей и скрытых фрагментов из всех процессов с игнорированием чистых модулей.
pd64.exe -closemonЗапуск в режиме мониторинга завершения. Это сбрасывает все процессы при попытке их завершения.
pd64.exe -pid 0x18AДамп модулей и скрытых фрагментов из конкретного идентификатора процесса.
pd64.exe -p .\*chrome.\*Дамп модулей и скрытых фрагментов по имени процесса.
pd64.exe -db genСоздание базы данных чистых хешей известных модулей. Используется, чтобы в дальнейших задачах не сбрасывать известные хорошие модули.
pd64.exe -pid 0x1a3 -a 0xffb4000Дамп кода из конкретного адреса в PID. Будут созданы два файла для анализа с восстановленными 32- и 64-разрядными PE-заголовками: notepad_exe_x64_hidden_FFB40000.exe и notepad_exe_x86_hidden_FFB40000.exe.