Una tarea recurrente de un analista de malware es volcar el código desempaquetado o inyectado de la memoria a disco para su posterior análisis estático con alguna herramienta como IDA o OllyDBG.
Con Process Dump 1.5 podrás hacerlo fácilmente en Windows y desde la línea de comandos. Funciona en 32 y 64 bits, utiliza un enfonque de importación y reconstrucción agresivo y permite volcar regiones de memoria sin cabeceras PE (en esos casos se generarán automáticamente junto con las tablas de importación).
Process Dump soporta también la creación y uso de una base de datos de hashes "limpios", por lo que el volcado de archivos limpios como kernel32.dll se puede omitir.
A continuación veremos algunos ejemplos de uso.
- Volcar todos los módulos de todos los procesos (ignorando los módulos limpios conocidos):
pd64.exe -system
- Volcar todos los módulos de un identificador de proceso específico:
pd64.exe -pid 0x18A
- Volcar todos los módulos de un nombre de proceso:
pd64.exe -p .chrome.
- Crear una base de datos de hashes "limpios". Estos hashes serán usados para excluir algunos módulos del volcado con el siguiente comando:
pd64.exe -db gen
- Volcar el código de una dirección específica en el PID PID 0x1a3:
pd64.exe -pid 0x1a3 -a 0xffb4000
Esto genererá dos ficheros (de 32 y 64 bits) con la cabeceras del PE y tabla de importación generada que pueden ser cargados para analizarlos con IDA: notepad_exe_x64_hidden_FFB40000.exe notepad_exe_x86_hidden_FFB40000.exe
Descargar archivo ejecutable para Windows 32 y 64 bit: pd_latest (100.32 KB)
o puede construirse utilizando Visual Studio aquí.
Fuentes:
http://split-code.com/processdump.html
https://github.com/glmcdona/Process-Dump
Con Process Dump 1.5 podrás hacerlo fácilmente en Windows y desde la línea de comandos. Funciona en 32 y 64 bits, utiliza un enfonque de importación y reconstrucción agresivo y permite volcar regiones de memoria sin cabeceras PE (en esos casos se generarán automáticamente junto con las tablas de importación).
Process Dump soporta también la creación y uso de una base de datos de hashes "limpios", por lo que el volcado de archivos limpios como kernel32.dll se puede omitir.
A continuación veremos algunos ejemplos de uso.
- Volcar todos los módulos de todos los procesos (ignorando los módulos limpios conocidos):
pd64.exe -system
- Volcar todos los módulos de un identificador de proceso específico:
pd64.exe -pid 0x18A
- Volcar todos los módulos de un nombre de proceso:
pd64.exe -p .chrome.
- Crear una base de datos de hashes "limpios". Estos hashes serán usados para excluir algunos módulos del volcado con el siguiente comando:
pd64.exe -db gen
- Volcar el código de una dirección específica en el PID PID 0x1a3:
pd64.exe -pid 0x1a3 -a 0xffb4000
Esto genererá dos ficheros (de 32 y 64 bits) con la cabeceras del PE y tabla de importación generada que pueden ser cargados para analizarlos con IDA: notepad_exe_x64_hidden_FFB40000.exe notepad_exe_x86_hidden_FFB40000.exe
Descargar archivo ejecutable para Windows 32 y 64 bit: pd_latest (100.32 KB)
o puede construirse utilizando Visual Studio aquí.
Fuentes:
http://split-code.com/processdump.html
https://github.com/glmcdona/Process-Dump
Comentarios
Publicar un comentario