
Herramienta de Windows para volcar archivos PE de malware desde la memoria al disco para su análisis.
Process Dump es una herramienta de línea de comandos de ingeniería inversa para Windows que vuelca componentes de memoria de malware de vuelta al disco para su análisis. A menudo los archivos de malware están empaquetados y ofuscados antes de ejecutarse para evadir los escáneres AV; sin embargo, cuando estos archivos se ejecutan, frecuentemente desempaquetan o inyectan una versión limpia del código del malware en memoria. Una tarea común para los investigadores de malware al analizarlo es volcar este código desempaquetado desde la memoria al disco para escanearlo con productos AV o para analizarlo con herramientas de análisis estático como IDA.
Process Dump funciona en sistemas operativos Windows de 32 y 64 bits y puede volcar componentes de memoria de procesos específicos o de todos los procesos en ejecución. Process Dump admite la creación y el uso de una base de datos de hashes limpios, de modo que se puede omitir el volcado de archivos conocidos como kernel32.dll. Sus características principales incluyen:
-closemon), donde los procesos con hooks se pausan y se vuelcan justo antes de que terminen.Mantengo una versión compilada oficial en mi sitio web aquí: https://split-code.com/processdump.html
Puede descargar la última versión compilada de Process Dump aquí:
Use pd64.exe en Windows de 64 bits (recomendado), o pd32.exe en Windows de 32 bits. Ambos binarios son autónomos; no se requiere Microsoft Visual C++ Redistributable.
Process Dump puede volcar todo el código desconocido de la memoria (-system), volcar procesos específicos, o monitorizar procesos y volcarlos antes de que terminen.
En una estación de trabajo limpia, genere una base de datos de referencia con cualquiera de estos comandos:
pd64.exe -db genquickpd64.exe -db genEjecute la generación de la base de datos y el volcado como comandos separados. Para un mejor acceso, ejecute como Administrador. El número predeterminado de trabajadores es 16.
Ejemplo de uso:
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 -closemonOpciones generales de volcado
| Opción | Descripción |
|---|---|
-system | Vuelca módulos y código suelto que no coincidan con la base de datos de hashes limpios de todos los procesos accesibles. |
-pid <pid> | Vuelca un proceso específico. Use decimal o un prefijo 0x para un PID hexadecimal. |
-closemon | Engancha la terminación de procesos y vuelca antes de la salida. Úselo en un entorno controlado; pulse Ctrl+C para detenerlo. |
-p <regex> | Vuelca los procesos cuyo nombre completo coincida con una expresión regular sensible a mayúsculas y minúsculas. Si hay varias coincidencias, se solicita confirmación. |
-a <address> | Vuelca en la dirección base especificada. Requiere -pid; acepta decimal o hexadecimal con prefijo 0x. |
-o <path> | Establece la carpeta de salida (predeterminado: directorio de trabajo actual). Cree la carpeta primero; los archivos existentes nunca se sobrescriben. |
Opciones de la base de datos de hashes limpios
Los archivos de la base de datos se ubican por defecto en el directorio de la aplicación: clean.hashes, entrypoints.hashes y shortentrypoints.hashes.
| Opción | Descripción |
|---|---|
-db gen | Añade hashes de procesos en ejecución y archivos PE de forma recursiva en %WINDIR%, %USERPROFILE%, C:\Program Files y C:\Program Files (x86). |
-db genquick | Añade hashes solo de los procesos en ejecución. Más rápido que gen, pero menos completo. |
-db add <dir> | Añade hashes de archivos PE del directorio especificado de forma recursiva, incluyendo firmas de punto de entrada. |
-db remove <dir>, -db rem <dir> | Elimina los hashes de módulos limpios coincidentes del directorio de forma recursiva. Las firmas de punto de entrada se conservan. |
-nr | Desactiva la recursión para los comandos de añadir/eliminar de la base de datos. No afecta a -db gen. |
-db clean | Borra las tres bases de datos, incluyendo las firmas de punto de entrada. |
-db ignore | Ignora las tres bases de datos cargadas para este volcado sin modificar los archivos. Los módulos repetidos aún pueden omitirse durante la ejecución. |
-cdb <filepath>, -c <filepath> | Establece la ruta de la base de datos de hashes limpios. |
-edb <filepath> | Establece la ruta de la base de datos de hashes de punto de entrada. |
-esdb <filepath> | Establece la ruta de la base de datos de hashes cortos de punto de entrada. |
Opciones de salida
| Opción | Descripción |
|---|---|
-v | Muestra diagnósticos detallados. |
-nh | Suprime el banner de versión/copyright. |
--help, -help, -h, --h | Muestra la ayuda y sale. Ejecutar sin argumentos también muestra la ayuda. |
Opciones avanzadas
| Opción | Descripción |
|---|---|
-g | Fuerza la generación de cabeceras PE de 32 y 64 bits, ignorando las cabeceras existentes. |
-eprec | Fuerza la recuperación del punto de entrada incluso si existe un punto de entrada válido. La recuperación es heurística; una búsqueda fallida deja el valor anterior sin cambios. |
-ni | Desactiva la reconstrucción agresiva de importaciones (habilitada por defecto). |
-nc | Desactiva el volcado y hashing de código suelto (habilitado por defecto). |
-nep | Desactiva la recuperación del punto de entrada y el hashing del punto de entrada en vivo, anulando -eprec. La generación de la base de datos de archivos sigue recopilando firmas de punto de entrada. |
-reexec | Preparación experimental para volver a ejecutar volcados. Descarta parte del estado capturado y asume el diseño de secciones original; no ejecuta el volcado ni garantiza que funcione. Desactivado por defecto. |
-nt | Usa un solo worker, equivalente a -t 1. La monitorización de cierre sigue teniendo un hilo de monitorización separado. |
-t <count> | Establece el número de workers (por defecto 16, mínimo 1) para el volcado del sistema, la generación de la base de datos y la monitorización de cierre. Los volcados directos por PID/nombre siguen siendo síncronos. Prevalece el último -t/-nt. |