
MemProcFS: =============================== MemProcFS es una forma fácil y cómoda de ver la memoria física como archivos en un sistema de archivos virtual. ¡Análisis de memoria fácil, trivial, con un solo clic y sin necesidad de complicados argumentos de línea de comandos! ¡Acceda 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 con muchas funciones para incluir en sus propios proyectos! ¡Analice volcados de memoria, <b>memoria en vivo</b> mediante DumpIt o WinPMEM, <b>memoria en vivo en modo lectura-escritura</b> desde máquinas virtuales o desde dispositivos de hardware [PCILeech](https://github.com/ufrisk/pcileech/) [FPGA](https://github.com/ufrisk/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 remota a incidentes de memoria en vivo, incluso a través de conexiones de mayor latencia y bajo ancho de banda! ¡Eche un vistazo a [Máquinas Virtuales con MemProcFS](https://github.com/ufrisk/MemProcFS/wiki/VM), [LiveCloudKd](https://github.com/ufrisk/LeechCore/wiki/Device_LiveCloudKd) o [VMware](https://github.com/ufrisk/LeechCore/wiki/Device_VMWare)! ¡Utilice sus herramientas favoritas para analizar la memoria! Utilice sus editores hexadecimales favoritos, sus scripts de python y powershell, WinDbg o sus desensambladores y depuradores favoritos: ¡todos funcionarán de forma trivial con MemProcFS simplemente leyendo y escribiendo archivos! <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/2830/a111e1c899f2551096ce422ed932f3525456af2bc6ffa2d5e6abac1fee1f8849.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/4ecebbb25e1d08180796de105a630a7760973a6f47f2403ef1a48644126de979.jpg" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/11e55ba5f11c9d1137246542e03037eb387b0d64d14314d6e775e5f80108b691.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/7b379ca3d99eb25b9c638181fa4f0d0bf4c53f8c1f0e9475b03346670eeaab42.png" height="190"/></p> ¡Empezar! ============ ¡Consulte el excelente tutorial rápido de [13Cubed](https://www.13cubed.com/) para comenzar! También eche un vistazo a mis charlas de conferencias anteriores de Disobey y BlueHat. <p align="center"> <a href="https://youtu.be/hjWVUrf7Obk" alt="13Cubed: MemProcFS - This Changes Everything" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://youtu.be/mca3rLsHuTA?t=952" alt="Disobey 2020 talk - Live Memory Attacks and Forensics" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://www.youtube.com/watch?v=Da_9SV9FA34" alt="Microsoft BlueHatIL 2019 talk - Practical Uses for Hardware-assisted Memory Visualization" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a></p> Para documentación adicional, **consulte la [wiki del proyecto](https://github.com/ufrisk/MemProcFS/wiki)** para obtener información detallada y en profundidad sobre el propio sistema de archivos, su API y sus módulos de complementos. Para obtener información adicional sobre los métodos de adquisición de memoria, consulte el **[proyecto LeechCore](https://github.com/ufrisk/LeechCore/)** o únase al servidor de Discord de [PCILeech/MemProcFS](https://pcileech.com/discord). Para comenzar, descargue los [últimos binarios, módulos y archivos de configuración](https://github.com/ufrisk/MemProcFS/releases/latest) y consulte la [guía](https://github.com/ufrisk/MemProcFS/wiki). Instalación: =========== <b>Obtenga los [últimos binarios, módulos y archivos de configuración](https://github.com/ufrisk/MemProcFS/releases/latest) de la última versión.</b> Alternativamente, clone el repositorio y compile desde el código fuente. ## Windows El montaje del sistema de archivos requiere que esté instalada la <b>biblioteca de sistema de archivos Dokany</b>. Descargue e instale 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), descargue [DumpIt](https://www.magnetforensics.com/resources/magnet-dumpit-for-windows) e inicie MemProcFS mediante el modo DumpIt /LIVEKD. Alternativamente, obtenga WinPMEM descargando el [controlador WinPMEM](https://github.com/Velocidex/c-aff4/tree/master/tools/pmem/resources/winpmem) firmado más reciente y colóquelo junto a MemProcFS; encontrará instrucciones detalladas en la [Wiki de LeechCore](https://github.com/ufrisk/LeechCore/wiki/Device_WinPMEM). PCILeech FPGA requerirá hardware, así como _FTD3XXWU.dll_ colocada junto a los binarios de MemProcFS. Consulte el proyecto [LeechCore](https://github.com/ufrisk/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 compila desde el código fuente, consulte la guía sobre [MemProcFS en Linux](https://github.com/ufrisk/MemProcFS/wiki/_Linux). ## macOS Descargue la última versión de MemProcFS desde [aquí](https://github.com/ufrisk/MemProcFS/releases/latest). MemProcFS, cuando se utiliza como sistema de archivos virtual montado, depende de **macFuse**, que requiere un .kext. Descargue e instale macFuse [aquí](https://github.com/macfuse/macfuse/releases/latest). Si MemProcFS se utiliza a través de las API compatibles de C/C++/Rust, macFuse no es necesario. Extensa API de Python, Rust, Java, Go, C# y C/C++: =============================== ¡Incluya MemProcFS en sus proyectos de programación [C/C++](https://github.com/ufrisk/MemProcFS/wiki/API_C), [C#](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp), [Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java), [Go](https://github.com/TexHik620953/go-memprocfs/) (de terceros), [Python](https://github.com/ufrisk/MemProcFS/wiki/API_Python) o [Rust](https://github.com/ufrisk/MemProcFS/wiki/API_Rust)! ¡Todo en MemProcFS se expone a través de una API fácil de usar para su uso en sus propios proyectos! La arquitectura compatible con complementos permite a los usuarios ampliar fácilmente MemProcFS con complementos en C/C++/Rust/Python. Todo en MemProcFS se expone como API. Existen API para C/C++ `vmmdll.h`, C# [paquete nuget](https://www.nuget.org/packages/Vmmsharp/), Java, Python [paquete pip](https://pypi.org/project/memprocfs/) y Rust [crate](https://crates.io/crates/memprocfs). El propio sistema de archivos se pone a disposición de forma virtual a través de la API sin necesidad de montarlo. ¡Es posible leer tanto la memoria virtual de los procesos como la memoria física! El ejemplo siguiente 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 sus [Jupyter Notebooks](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter). Ejemplos: ========= Inicie MemProcFS desde la línea de comandos, posiblemente utilizando uno de los ejemplos siguientes. ¡O registre la extensión de 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! - montar el archivo de volcado de memoria como M: predeterminada <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw` - montar el archivo de volcado de memoria como M: predeterminada con verbosidad adicional: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -v` - montar el archivo de volcado de memoria como M: predeterminada e iniciar el modo forense: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1` - montar el archivo de volcado de memoria como M: predeterminada e iniciar el modo forense con un escaneo yara: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar` - montar el archivo de volcado de memoria como /home/pi/mnt/ en Linux: <br>`./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw` - montar el archivo de volcado de memoria como S: <br>`memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw` - montar la memoria del objetivo en vivo, en modo de solo lectura, con el controlador WinPMEM: <br>`memprocfs.exe -device pmem` - montar la memoria del objetivo en vivo, en modo lectura/escritura, con el dispositivo de adquisición de memoria PCILeech FPGA: <br>`memprocfs.exe -device fpga -memmap auto` - montar un volcado de memoria con los archivos de paginación correspondientes: <br>`memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys` Comunidad de PCILeech y MemProcFS: ========= ¿Le parece todo esto un poco abrumador? ¿O simplemente quiere hacer una pregunta rápida? ¡Únase al servidor de la comunidad DMA de PCILeech y MemProcFS en Discord! <a href="https://pcileech.com/discord"><img src="https://assets.kitploit.com/production/public/readmes/2830/dd08fab787215b19b3e40b783ad638e783a82877e2327db7ccfd42e1454d1a94/1b0a45deb2d3a6f0b2933330f855a6c788343ce3e9f4a6df439c161a52dc460a-display-v1.webp"/></a> Compilación: ========= <b>Los [binarios, módulos y archivos de configuración](https://github.com/ufrisk/MemProcFS/releases/latest) precompilados se encuentran en la última versión.</b>. 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](https://github.com/ufrisk/MemProcFS/wiki) en la sección [Building](https://github.com/ufrisk/MemProcFS/wiki/Dev_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 que se pueda obtener una licencia alternativa previa solicitud. Contribuir: ============= 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 permitirá contribuciones en forma de complementos. Si desea realizar una contribución, que no sea un complemento, a los proyectos principales, póngase en contacto conmigo antes de empezar a desarrollar. Enlaces: ====== * Twitter: [](https://twitter.com/intent/follow?screen_name=UlfFrisk) * Discord: [](https://pcileech.com/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](https://github.com/LETHAL-FORENSICS/MemProcFS-Analyzer/) es una aplicación PowerShell de terceros que se utiliza para simplificar el uso de MemProcFS y optimizar su flujo de trabajo de análisis de memoria. MemProcFS-Analyzer es mantenido por [@evild3ad](https://github.com/evild3ad) en [LETHAL-FORENSICS](https://github.com/LETHAL-FORENSICS). Registro de cambios: =================== <details><summary>Versiones anteriores (haga clic para expandir):</summary> v1.0 * Versión inicial. v1.1-v4.9 * Varias actualizaciones. Consulte 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 compatibilidad con [archivos CSV](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_CSV). * Compatibilidad con complementos de Linux. * Nueva [API de Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java). v5.1 * Compatibilidad con Windows 11 22H2. * Vistas de solo texto y solo binario en '/misc/view/'. v5.2 * Corrección de errores. * [Compatibilidad con máquinas virtuales](https://github.com/ufrisk/MemProcFS/wiki/VM). * [Compatibilidad con Windows ARM64](https://github.com/ufrisk/MemProcFS/wiki/_ARM64). * Mejoras de rendimiento de FPGA. * Información del árbol de dispositivos en /sys/drivers. * Adiciones de funciones de Linux: memcompress y token. * Descarga manual de símbolos de depuración (PDB) en sistemas sin conexión (solo Windows). v5.3 * Corrección de errores y optimizaciones de rendimiento. * Funciones reenviadas de PE. * Información de versión de PE. * Modo por lotes de MemProcFS Python. * Compatibilidad con complementos de Python en Linux. * Compatibilidad con Hyper-V Container/Sandbox. * Compatibilidad con Windows Hypervisor Platform (VMware y VirtualBox en Hyper-V). v5.4 * Compatibilidad con la API de Rust. * Compatibilidad con símbolos de depuración cuando se ejecuta en Linux. v5.5 * [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil): nuevas detecciones basadas en hilos. Findevil ahora es solo en modo forense. * [Ejemplo de Jupyter Notebook](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter) * Compatibilidad con Yara en [modo forense](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Yara) y [búsqueda](https://github.com/ufrisk/MemProcFS/wiki/FS_YaraSearch). v5.6 * Corrección de errores, optimizaciones de rendimiento y actualizaciones menores. * Complemento [files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files) en modo forense: muestra archivos con contenido recuperable. * Reglas yara integradas para [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil) en modo forense de [Elastic Security](https://github.com/elastic/protections-artifacts).<br>Actívelo aceptando la licencia Elastic 2.0 mediante la opción de inicio [`-license-accept-elastic-license-2.0`](https://github.com/ufrisk/MemProcFS/wiki/_CommandLine#-license-accept-elastic-license-2.0). v5.7 * Corrección de errores. * Actualizaciones de la API de Rust. * Nuevas detecciones FindEvil Yara. * Escaneos 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. * [MemProcFS remoting](https://github.com/ufrisk/MemProcFS/wiki/_Remoting) mejorado a través de un [LeechAgent](https://github.com/ufrisk/LeechCore/wiki/LeechAgent) remoto. Compatibilidad remota completa de MemProcFS sobre SMB - tcp/445. ¡Perfecto para la respuesta a incidentes (IR) de análisis forense de memoria! v5.8 * Actualizaciones de la API de LeechCore para C/C++, C#, Rust, Python, Java. * Compatibilidad para analizar memoria de Windows ARM64. [v5.9](https://github.com/ufrisk/MemProcFS/releases/tag/v5.9) * Corrección de errores. * Mejoras en los módulos: ntfs, procinfo, web. * API de C#: mejoras. * API de Java: compatibilidad con java.lang.foreign (JDK21+) para accesos eficientes a la memoria. * Mejoras de rendimiento de PCIe FPGA en Linux. * FindEvil: ahora se muestran las reglas Yara activadas. * FindEvil: detecciones de AV de Windows Defender que residen en el sistema analizado. * API de Python: nueva funcionalidad (multi-read, type-read) y rendimiento mejorado de lectura dispersa. * Compatibilidad con archivos de volcado de memoria de Proxmox. [v5.10](https://github.com/ufrisk/MemProcFS/releases/tag/v5.10) * Compatibilidad con la versión Windows 11 24H2. * Corrección de errores. * Se agregaron objetos _SECTION con nombre al mapa VAD. * Mejoras en `-memmap auto`. * Compatibilidad con archivos de hibernación. * FindEvil: detección de UM APC. Gracias [@thejanit0r](https://github.com/thejanit0r) por la contribución. * [Módulo Sysinfo](https://github.com/ufrisk/MemProcFS/wiki/FS_Sys_Sysinfo) para información del sistema fácil de leer. * [Módulo Eventlog](https://github.com/ufrisk/MemProcFS/wiki/FS_Misc_Eventlog) para un acceso conveniente a los 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. [v5.11](https://github.com/ufrisk/MemProcFS/releases/tag/v5.11) * Corrección de errores. * [Nueva API de C# Vmmsharp](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp). [v5.12](https://github.com/ufrisk/MemProcFS/releases/tag/v5.12) * Corrección de errores. * actualizaciones (FindEvil, nuevas firmas, etc.). * Nuevas API para objetos del kernel, controladores y dispositivos. [v5.13](https://github.com/ufrisk/MemProcFS/releases/tag/v5.13) * Corrección de errores. * Se agregó el nuevo [módulo de consola](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Console). * Mejoras en la recuperación de archivos (tamaños de archivo, información de firma) para el [módulo files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files). * Funcionalidad de la API de devolución de llamada de memoria (solo API de C/C++). * [Análisis de pila de llamadas](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Threads) para pilas de llamadas de procesos en modo usuario x64. [v5.14](https://github.com/ufrisk/MemProcFS/releases/tag/v5.14) * Corrección de errores. * Compatibilidad con compilación clang en Linux. * Compatibilidad con macOS. [v5.15](https://github.com/ufrisk/MemProcFS/releases/tag/v5.15) * Corrección de errores. * Compatibilidad con LeechAgent en Linux mediante gRPC (LeechCore v2.21). * Nueva detección de FindEvil: High Entropy. * [Análisis de caché DNS](https://github.com/ufrisk/MemProcFS/wiki/FS_SysInfo_Network). Gracias [@MattCore71](https://github.com/MattCore71) por la contribución. [v5.16](https://github.com/ufrisk/MemProcFS/releases/tag/v5.16) * Corrección de errores. * Compatibilidad con Windows 11 25H2 </details> [v5.17](https://github.com/ufrisk/MemProcFS/releases/tag/v5.17) * Compatibilidad con 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. * Compatibilidad con caracteres no ASCII en rutas de archivo. [v5.18](https://github.com/ufrisk/MemProcFS/releases/tag/v5.18) * Corrección 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. [v5.19](https://github.com/ufrisk/MemProcFS/releases/tag/v5.19) * Compatibilidad con Windows 11 26H2. * Corrección de errores. * Corrección: la recuperación de Heap ahora funciona en Windows 11 24H2 y posteriores. * Corrección: análisis de Pool y Heap mejorado. * Corrección: tasas de recuperación de memoria comprimida mejoradas. * Nuevo módulo: /sys/eventlog (recuperación del registro de eventos de Windows). * Nuevo módulo: /sys/proc/cpu - uso de CPU del proceso, actual y total. * Nueva función de API: VMMDLL_MemVirtualQuery. * Nueva función de API: VMMDLL_WinReg_QueryNameOriginalU.