
MemProcFS v5.18
MemProcFS
MemProcFS:
MemProcFS es una forma fácil y conveniente de ver la memoria física como archivos en un sistema de archivos virtual.
¡Análisis de memoria fácil y trivial con un solo clic sin necesidad de complicados argumentos de línea de comandos! ¡Accede al contenido de la memoria y a los artefactos a través de archivos en un sistema de archivos virtual montado o mediante una biblioteca de aplicaciones rica en funciones para incluir en tus propios proyectos!
Analiza archivos de volcado de memoria, memoria en vivo mediante DumpIt o WinPMEM, memoria en vivo en modo lectura-escritura desde máquinas virtuales o desde dispositivos de hardware PCILeech FPGA!
¡Incluso es posible conectarse a un agente remoto de adquisición de memoria LeechAgent a través de una conexión segura, lo que permite la respuesta a incidentes de memoria en vivo remota, incluso a través de conexiones de baja latencia y bajo ancho de banda! ¡Echa un vistazo a Máquinas Virtuales con MemProcFS, LiveCloudKd o VMware!
Usa tus herramientas favoritas para analizar la memoria: usa tus editores hexadecimales favoritos, tus scripts de python y powershell, WinDbg o tus desensambladores y depuradores favoritos; todos funcionarán trivialmente con MemProcFS simplemente leyendo y escribiendo archivos.




¡Comienza!
¡Consulta el excelente recorrido rápido de 13Cubed para empezar! También echa un vistazo a mis charlas de conferencias anteriores de Disobey y BlueHat.
Para documentación adicional consulta la wiki del proyecto para obtener información detallada y profunda sobre el sistema de archivos en sí, su API y sus módulos de complementos. Para obtener información adicional sobre los métodos de adquisición de memoria, consulta el proyecto LeechCore o únete al servidor de Discord de PCILeech/MemProcFS.
Para empezar, descarga los binarios, módulos y archivos de configuración más recientes y consulta la guía.
Instalación:
Obtén los binarios, módulos y archivos de configuración más recientes de la última versión. Alternativamente, clona el repositorio y compila desde el código fuente.
Windows
Montar el sistema de archivos requiere que esté instalada la biblioteca del sistema de archivos Dokany. Descarga e instala la última versión de Dokany versión 2 en: https://github.com/dokan-dev/dokany/releases/latest
Para capturar memoria en vivo (sin hardware PCILeech FPGA), descarga DumpIt e inicia MemProcFS mediante el modo DumpIt /LIVEKD. Alternativamente, obtén WinPMEM descargando el controlador WinPMEM firmado más reciente y colócalo junto a MemProcFS; instrucciones detalladas en la Wiki de LeechCore.
PCILeech FPGA requerirá hardware, así como FTD3XXWU.dll que debe colocarse junto a los binarios de MemProcFS. Consulta el proyecto LeechCore para obtener instrucciones.
Linux
MemProcFS debería poder ejecutarse sin configuración adicional en la mayoría de las distribuciones de Linux con FUSE instalado. Si compilas desde el código fuente, consulta la guía sobre MemProcFS en Linux.
macOS
Descarga la última versión de MemProcFS desde aquí. MemProcFS, cuando se usa como un sistema de archivos virtual montado, depende de macFuse, que requiere un .kext. Descarga e instala macFuse aquí. Si MemProcFS se usa mediante las API compatibles de C/C++/Rust, no se requiere macFuse.
Amplia API de Python, Rust, Java, Go, C# y C/C++:
¡Incluye MemProcFS en tus proyectos de programación C/C++, C#, Java, Go (de terceros), Python o Rust! ¡Todo en MemProcFS se expone a través de una API fácil de usar para su uso en tus propios proyectos! La arquitectura amigable con complementos permite a los usuarios extender fácilmente MemProcFS con complementos de C/C++/Rust/Python.
Todo en MemProcFS se expone como API. Existen API tanto para C/C++ vmmdll.h, C# paquete nuget, Java, Python paquete pip y Rust crate. El sistema de archivos en sí está disponible virtualmente a través de la API sin necesidad de montarlo. ¡Es posible leer tanto la memoria virtual del proceso como la memoria física! El ejemplo a continuación muestra la lectura de 0x20 bytes desde la dirección física 0x1000:
>>> import memprocfs
>>> vmm = memprocfs.Vmm(['-device', 'c:/temp/win10_memdump.raw'])
>>> print(vmm.hex( vmm.memory.read(0x1000, 0x20) ))
0000 e9 4d 06 00 01 00 00 00 01 00 00 00 3f 00 18 10 .M..........?...
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
MemProcFS está disponible como paquete pip de Python y es fácil de integrar en tus Jupyter Notebooks.
Ejemplos:
Inicia MemProcFS desde la línea de comandos, posiblemente usando uno de los ejemplos a continuación.
O registra la extensión del archivo de volcado de memoria con MemProcFS.exe para que el sistema de archivos se monte automáticamente al hacer doble clic en un archivo de volcado de memoria.
- monta el archivo de volcado de memoria como M: predeterminado:
memprocfs.exe -device c:\temp\win10x64-dump.raw - monta el archivo de volcado de memoria como M: predeterminado con verbosidad adicional:
memprocfs.exe -device c:\temp\win10x64-dump.raw -v - monta el archivo de volcado de memoria como M: predeterminado e inicia el modo forense:
memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 - monta el archivo de volcado de memoria como M: predeterminado e inicia el modo forense con un escaneo yara:
memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar - monta el archivo de volcado de memoria como /home/pi/mnt/ en Linux:
./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw - monta el archivo de volcado de memoria como S:
memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw - monta la memoria del objetivo en vivo, en modo solo lectura, con el controlador WinPMEM:
memprocfs.exe -device pmem - monta la memoria del objetivo en vivo, en modo lectura/escritura, con el dispositivo de adquisición de memoria PCILeech FPGA:
memprocfs.exe -device fpga -memmap auto - monta un volcado de memoria con archivos de página correspondientes:
memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys
Comunidad de PCILeech y MemProcFS:
¿Te resulta todo un poco abrumador? ¿O solo quieres hacer una pregunta rápida? ¡Únete al servidor de la comunidad DMA de PCILeech y MemProcFS en Discord!
Compilación:
Los binarios, módulos y archivos de configuración precompilados se encuentran en la última versión.. Los binarios de MemProcFS se compilan con Visual Studio 2022 y Ubuntu x64/AARCH64.
Las instrucciones detalladas de compilación se pueden encontrar en la Wiki en la sección Building.
Licencia:
El código fuente del proyecto se publica bajo: GNU Affero General Public License v3.0. Algunas dependencias y complementos incluidos se publican bajo GPLv3. Algunos binarios redistribuibles de Microsoft incluidos se publican bajo licencias separadas. Es posible solicitar licencias alternativas.
Contribuciones:
PCILeech, MemProcFS y LeechCore son de código abierto pero no de contribución abierta. PCILeech, MemProcFS y LeechCore ofrecen una arquitectura de complementos altamente flexible que permite contribuciones en forma de complementos. Si deseas hacer una contribución, que no sea un complemento, a los proyectos principales, contáctame antes de comenzar a desarrollar.
Enlaces:
- Twitter:
- Discord:
- PCILeech: https://github.com/ufrisk/pcileech
- PCILeech FPGA: https://github.com/ufrisk/pcileech-fpga
- LeechCore: https://github.com/ufrisk/LeechCore
- MemProcFS: https://github.com/ufrisk/MemProcFS
- Blog: http://blog.frizk.net
Enlaces - Proyectos Relacionados:
- MemProcFS-Analyzer es una aplicación de PowerShell de terceros utilizada para simplificar el uso de MemProcFS y optimizar tu flujo de trabajo de análisis de memoria. MemProcFS-Analyzer es mantenido por @evild3ad en LETHAL-FORENSICS.
Registro de cambios:
Versiones anteriores (haz clic para expandir):
v1.0
- Versión inicial.
v1.1-v4.9
- Varias actualizaciones. Consulta las versiones individuales para obtener más información.
v5.0
- Versión principal con nuevas funciones para admitir tareas de análisis en paralelo.
- Cambios importantes en la API y actualizaciones importantes.
- Capacidades ampliadas de análisis forense y soporte de archivos CSV.
- Soporte de complementos en Linux.
- Nueva API de Java.
v5.1
- Soporte para Windows 11 22H2.
- Vistas solo de texto y binario en '/misc/view/'.
v5.2
- Correcciones de errores.
- Soporte de máquinas virtuales.
- Soporte de Windows ARM64.
- Mejoras de rendimiento de FPGA.
- Información del árbol de dispositivos en /sys/drivers.
- Adiciones de funciones en Linux: memcompress y token.
- Descarga manual de símbolos de depuración (PDB) en sistemas sin conexión (solo Windows).
v5.3
- Correcciones de errores y optimizaciones de rendimiento.
- Funciones reenviadas de PE.
- Información de versión de PE.
- Modo por lotes de Python de MemProcFS.
- Soporte de complementos de Python en Linux.
- Soporte de contenedores/sandboxes de Hyper-V.
- Soporte de la Plataforma de hipervisor de Windows (VMware y VirtualBox en Hyper-V).
v5.4
- Soporte de API de Rust.
- Soporte de símbolos de depuración al ejecutarse en Linux.
v5.5
- Findevil: Nuevas detecciones basadas en hilos. Findevil ahora es solo modo forense.
- Ejemplo de Jupyter Notebook
- Soporte de Yara en modo forense y búsqueda.
v5.6
- Correcciones de errores, optimizaciones de rendimiento y actualizaciones menores.
- Complemento de archivos en modo forense: muestra archivos con contenido recuperable.
- Reglas yara integradas para Findevil en modo forense de Elastic Security.
Actívalas aceptando la licencia Elastic 2.0 mediante la opción de inicio-license-accept-elastic-license-2.0.
v5.7
- Correcciones de errores.
- Actualizaciones de la API de Rust.
- Nuevas detecciones de Yara en FindEvil.
- Escaneos de Yara de objetos de archivo (mayor probabilidad de detección de controladores vulnerables por FindEvil).
- Rendimiento mejorado de FPGA para lecturas más pequeñas.
- Remoting de MemProcFS mejorado mediante un LeechAgent remoto. Soporte remoto completo de MemProcFS sobre SMB - tcp/445. ¡Perfecto para la respuesta a incidentes (IR) de memoria forense!
v5.8
- Actualizaciones de la API de LeechCore para C/C++, C#, Rust, Python, Java.
- Soporte para analizar memoria de Windows ARM64.
- Correcciones de errores.
- Mejoras de módulos: ntfs, procinfo, web.
- API de C#: mejoras.
- API de Java: soporte para java.lang.foreign (JDK21+) para accesos de memoria eficientes.
- Mejoras de rendimiento de PCIe FPGA en Linux.
- FindEvil: ahora se muestran las reglas de Yara activadas.
- FindEvil: detecciones de antivirus de Windows Defender que residen en el sistema analizado.
- API de Python: nueva funcionalidad (lectura múltiple, lectura de tipos) y rendimiento mejorado de lectura dispersa.
- Soporte para archivos de volcado de memoria de Proxmox.
- Soporte para la versión Windows 11 24H2.
- Correcciones de errores.
- Objetos _SECTION con nombre agregados al mapa VAD.
- Mejoras de
-memmap auto. - Soporte de archivos de hibernación.
- FindEvil: detección de APC de UM. Gracias @thejanit0r por la contribución.
- Módulo Sysinfo para información del sistema fácil de leer.
- Módulo Eventlog para acceso conveniente a archivos de registro de eventos.
- La API de búsqueda binaria ahora permite hasta 16M términos de búsqueda (antes 16).
- Análisis de prefetch.
- Correcciones de errores.
- Nueva API de C# Vmmsharp.
- Correcciones de errores.
- Actualizaciones (FindEvil, nuevas firmas, etc.).
- Nuevas API para objetos del kernel, controladores y dispositivos.
- Correcciones de errores.
- Nuevo módulo de consola agregado.
- Mejoras de recuperación de archivos (tamaños de archivo, información de firma) para el módulo de archivos.
- Funcionalidad de API de devolución de llamada de memoria (solo API de C/C++).
- Análisis de pila de llamadas para pilas de llamadas de procesos en modo usuario x64.
- Correcciones de errores.
- Soporte de compilación clang en Linux.
- Soporte de macOS.
- Correcciones de errores.
- Soporte de LeechAgent en Linux mediante gRPC (LeechCore v2.21).
- Nueva detección de FindEvil: Alta entropía.
- Análisis de caché DNS. Gracias @MattCore71 por la contribución.
- Correcciones de errores.
- Soporte para Windows 11 25H2
- Soporte para Windows 11 26H1.
- Análisis de registro mejorado.
- Nuevas opciones de actualización en la API.
- Nueva devolución de llamada de registro opcional en la API.
- Soporte para caracteres no ascii en rutas de archivo.
- Correcciones de errores.
- Nuevo módulo: analizador de Windows Terminal (Win11+).
- Nuevo módulo forense: analizador de amcache (Win10+).
- Límite superior del mapa PTE ajustado de 65536 a 131072.
- Corrección: las escrituras de archivos en MemProcFS montado en WSL (drvfs) ahora funcionan.
Última versión:
- Correcciones de errores.
- Corrección: la recuperación de montones ahora funciona en Windows 11 24H2 y posteriores.
- Corrección: análisis de pools y montones mejorado.
- Corrección: tasas de recuperación de memoria comprimida mejoradas.
- Nuevo módulo: /sys/eventlog (recuperación de registros de eventos de Windows).
