
MemProcFS : =============================== MemProcFS est un moyen simple et pratique de visualiser la mémoire physique sous forme de fichiers dans un système de fichiers virtuel. Analyse mémoire triviale et facile par simple clic, sans avoir besoin d'arguments de ligne de commande compliqués ! Accédez au contenu et aux artefacts de la mémoire via des fichiers dans un système de fichiers virtuel monté ou via une bibliothèque applicative riche en fonctionnalités à intégrer dans vos propres projets ! Analysez les fichiers de vidage mémoire, la <b>mémoire en direct</b> via DumpIt ou WinPMEM, la <b>mémoire en direct en mode lecture-écriture</b> depuis des machines virtuelles ou depuis des périphériques matériels [PCILeech](https://github.com/ufrisk/pcileech/) [FPGA](https://github.com/ufrisk/pcileech-fpga/) ! Il est même possible de se connecter à un agent d'acquisition mémoire LeechAgent distant via une connexion sécurisée - permettant une réponse à incident sur mémoire en direct à distance - même sur des connexions à latence élevée et faible bande passante ! Jetez un œil aux [Machines Virtuelles avec MemProcFS](https://github.com/ufrisk/MemProcFS/wiki/VM), [LiveCloudKd](https://github.com/ufrisk/LeechCore/wiki/Device_LiveCloudKd) ou [VMware](https://github.com/ufrisk/LeechCore/wiki/Device_VMWare) ! Utilisez vos outils préférés pour analyser la mémoire - vos éditeurs hexadécimaux favoris, vos scripts python et powershell, WinDbg ou vos désassembleurs et débogueurs préférés - tout fonctionnera trivialement avec MemProcFS en lisant et écrivant simplement des fichiers ! <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> Pour commencer ! ============ Consultez l'excellent guide rapide de [13Cubed](https://www.13cubed.com/) pour démarrer ! Consultez également mes anciennes conférences de Disobey et 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> Pour une documentation supplémentaire, **consultez le [wiki du projet](https://github.com/ufrisk/MemProcFS/wiki)** pour des informations détaillées et approfondies sur le système de fichiers lui-même, son API et ses modules de plugins ! Pour plus d'informations sur les méthodes d'acquisition mémoire, consultez le **[projet LeechCore](https://github.com/ufrisk/LeechCore/)** ou rejoignez le serveur Discord [PCILeech/MemProcFS](https://pcileech.com/discord) ! Pour démarrer, téléchargez les [derniers binaires, modules et fichiers de configuration](https://github.com/ufrisk/MemProcFS/releases/latest) et consultez le [guide](https://github.com/ufrisk/MemProcFS/wiki) ! Installation : =========== <b>Obtenez les derniers [binaires, modules et fichiers de configuration](https://github.com/ufrisk/MemProcFS/releases/latest) depuis la dernière version.</b> Vous pouvez également cloner le dépôt et compiler depuis les sources. ## Windows Le montage du système de fichiers nécessite l'installation de la <b>bibliothèque de système de fichiers Dokany</b>. Téléchargez et installez la dernière version de Dokany version 2 sur : https://github.com/dokan-dev/dokany/releases/latest Pour capturer la mémoire en direct (sans matériel PCILeech FPGA), téléchargez [DumpIt](https://www.magnetforensics.com/resources/magnet-dumpit-for-windows) et démarrez MemProcFS via le mode DumpIt /LIVEKD. Vous pouvez également obtenir WinPMEM en téléchargeant le [pilote WinPMEM](https://github.com/Velocidex/c-aff4/tree/master/tools/pmem/resources/winpmem) signé le plus récent et le placer à côté de MemProcFS - instructions détaillées dans le [Wiki LeechCore](https://github.com/ufrisk/LeechCore/wiki/Device_WinPMEM). PCILeech FPGA nécessitera du matériel ainsi que _FTD3XXWU.dll_ à placer à côté des binaires MemProcFS. Veuillez consulter le projet [LeechCore](https://github.com/ufrisk/LeechCore) pour les instructions. ## Linux MemProcFS devrait pouvoir fonctionner directement sur la plupart des distributions Linux avec FUSE installé. Si vous compilez depuis les sources, consultez le guide sur [MemProcFS sous Linux](https://github.com/ufrisk/MemProcFS/wiki/_Linux). ## macOS Téléchargez la dernière version de MemProcFS depuis [ici](https://github.com/ufrisk/MemProcFS/releases/latest). MemProcFS, lorsqu'il est utilisé comme système de fichiers virtuel monté, dépend de **macFuse** qui nécessite un .kext. Téléchargez et installez macFuse [ici](https://github.com/macfuse/macfuse/releases/latest). Si MemProcFS est utilisé via les API C/C++/Rust prises en charge, macFuse n'est pas requis. API étendue Python, Rust, Java, Go, C# et C/C++ : =============================== Intégrez MemProcFS dans vos projets de programmation [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/) (tiers), [Python](https://github.com/ufrisk/MemProcFS/wiki/API_Python) ou [Rust](https://github.com/ufrisk/MemProcFS/wiki/API_Rust) ! Tout dans MemProcFS est exposé via une API facile à utiliser pour une utilisation dans vos propres projets ! L'architecture compatible avec les plugins permet aux utilisateurs d'étendre facilement MemProcFS avec des plugins C/C++/Rust/Python ! Tout dans MemProcFS est exposé sous forme d'API. Des API existent pour C/C++ `vmmdll.h`, C# [package nuget](https://www.nuget.org/packages/Vmmsharp/), Java, Python [package pip](https://pypi.org/project/memprocfs/) et Rust [crate](https://crates.io/crates/memprocfs). Le système de fichiers lui-même est rendu disponible virtuellement via l'API sans avoir besoin de le monter. Il est possible de lire à la fois la mémoire virtuelle des processus et la mémoire physique ! L'exemple ci-dessous montre la lecture de 0x20 octets à l'adresse physique 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 en tant que package pip Python et il est facile de l'intégrer dans vos [Jupyter Notebooks](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter). Exemples : ========= Démarrez MemProcFS depuis la ligne de commande - éventuellement en utilisant l'un des exemples ci-dessous. Ou associez l'extension de fichier de vidage mémoire à MemProcFS.exe afin que le système de fichiers soit automatiquement monté lors d'un double-clic sur un fichier de vidage mémoire ! - monter le fichier de vidage mémoire en tant que M: par défaut <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw` - monter le fichier de vidage mémoire en tant que M: par défaut avec plus de verbosité : <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -v` - monter le fichier de vidage mémoire en tant que M: par défaut et démarrer le mode forensique : <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1` - monter le fichier de vidage mémoire en tant que M: par défaut et démarrer le mode forensique avec un scan yara : <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar` - monter le fichier de vidage mémoire en tant que /home/pi/mnt/ sous Linux : <br>`./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw` - monter le fichier de vidage mémoire en tant que S: <br>`memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw` - monter la mémoire cible en direct, en mode lecture seule, avec le pilote WinPMEM : <br>`memprocfs.exe -device pmem` - monter la mémoire cible en direct, en mode lecture/écriture, avec le périphérique d'acquisition mémoire PCILeech FPGA : <br>`memprocfs.exe -device fpga -memmap auto` - monter un vidage mémoire avec les fichiers d'échange correspondants : <br>`memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys` Communauté PCILeech et MemProcFS : ========= Tout cela vous semble un peu accablant ? Ou vous voulez simplement poser une question rapide ? Rejoignez le serveur communautaire DMA PCILeech et MemProcFS sur Discord ! <a href="https://pcileech.com/discord"><img src="https://assets.kitploit.com/production/public/readmes/2830/dd08fab787215b19b3e40b783ad638e783a82877e2327db7ccfd42e1454d1a94/1b0a45deb2d3a6f0b2933330f855a6c788343ce3e9f4a6df439c161a52dc460a-display-v1.webp"/></a> Compilation : ========= <b>Des [binaires, modules et fichiers de configuration](https://github.com/ufrisk/MemProcFS/releases/latest) précompilés sont disponibles dans la dernière version.</b>. Les binaires MemProcFS sont compilés avec Visual Studio 2022 et Ubuntu x64/AARCH64. Des instructions de compilation détaillées se trouvent dans le [Wiki](https://github.com/ufrisk/MemProcFS/wiki) dans la section [Building](https://github.com/ufrisk/MemProcFS/wiki/Dev_Building). Licence : ======== Le code source du projet est publié sous : GNU Affero General Public License v3.0. Certaines dépendances et plugins inclus sont publiés sous GPLv3. Certains binaires redistribuables Microsoft inclus sont publiés sous des licences distinctes. Une licence alternative peut être possible sur demande. Contribution : ============= PCILeech, MemProcFS et LeechCore sont open source mais pas open contribution. PCILeech, MemProcFS et LeechCore offrent une architecture de plugins très flexible qui permettra des contributions sous forme de plugins. Si vous souhaitez apporter une contribution, autre qu'un plugin, aux projets principaux, veuillez me contacter avant de commencer le développement. Liens : ====== * 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 Liens - Projets associés : ========================= * [MemProcFS-Analyzer](https://github.com/LETHAL-FORENSICS/MemProcFS-Analyzer/) est une application PowerShell tierce utilisée pour simplifier l'utilisation de MemProcFS et optimiser votre flux de travail d'analyse mémoire. MemProcFS-Analyzer est maintenu par [@evild3ad](https://github.com/evild3ad) chez [LETHAL-FORENSICS](https://github.com/LETHAL-FORENSICS). Journal des modifications : =================== <details><summary>Versions précédentes (cliquez pour développer) :</summary> v1.0 * Version initiale. v1.1-v4.9 * Diverses mises à jour. Veuillez consulter les versions individuelles pour plus d'informations. v5.0 * Version majeure avec de nouvelles fonctionnalités pour prendre en charge les tâches d'analyse parallèle. * Modifications d'API avec rupture de compatibilité et mises à jour majeures. * Capacités d'analyse forensique étendues et prise en charge des [fichiers CSV](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_CSV). * Prise en charge des plugins Linux. * Nouvelle [API Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java). v5.1 * Prise en charge de Windows 11 22H2. * Vues texte et binaires uniquement dans '/misc/view/'. v5.2 * Corrections de bugs. * [Prise en charge des machines virtuelles](https://github.com/ufrisk/MemProcFS/wiki/VM). * [Prise en charge de Windows ARM64](https://github.com/ufrisk/MemProcFS/wiki/_ARM64). * Améliorations des performances FPGA. * Informations sur l'arborescence des périphériques dans /sys/drivers. * Ajouts de fonctionnalités Linux : memcompress et token. * Téléchargement manuel des symboles de débogage (PDB) sur les systèmes hors ligne (Windows uniquement). v5.3 * Corrections de bugs et optimisations des performances. * Fonctions PE redirigées. * Informations de version PE. * Mode batch Python de MemProcFS. * Prise en charge des plugins Python Linux. * Prise en charge des conteneurs/sandbox Hyper-V. * Prise en charge de la plateforme Windows Hypervisor (VMware et VirtualBox sur Hyper-V). v5.4 * Prise en charge de l'API Rust. * Prise en charge des symboles de débogage lors de l'exécution sous Linux. v5.5 * [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil) : Nouvelles détections basées sur les threads. Findevil est désormais en mode forensique uniquement. * [Exemple de Jupyter Notebook](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter) * Prise en charge de Yara en [mode forensique](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Yara) et [recherche](https://github.com/ufrisk/MemProcFS/wiki/FS_YaraSearch). v5.6 * Corrections de bugs, optimisations des performances et mises à jour mineures. * Plugin [files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files) en mode forensique - affichant les fichiers avec des contenus récupérables. * Règles yara intégrées pour [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil) en mode forensique provenant d'[Elastic Security](https://github.com/elastic/protections-artifacts).<br>Activez en acceptant la licence Elastic 2.0 via l'option de démarrage [`-license-accept-elastic-license-2.0`](https://github.com/ufrisk/MemProcFS/wiki/_CommandLine#-license-accept-elastic-license-2.0). v5.7 * Corrections de bugs. * Mises à jour de l'API Rust. * Nouvelles détections Yara FindEvil. * Scans Yara des objets fichiers (probabilité accrue de détection de pilotes vulnérables par FindEvil). * Performances FPGA améliorées pour les lectures plus petites. * [Remoting MemProcFS](https://github.com/ufrisk/MemProcFS/wiki/_Remoting) amélioré via un [LeechAgent](https://github.com/ufrisk/LeechCore/wiki/LeechAgent) distant. Prise en charge complète du mode distant MemProcFS via SMB - tcp/445. Parfait pour la réponse à incident (IR) en forensique mémoire ! v5.8 * Mises à jour de l'API LeechCore pour C/C++, C#, Rust, Python, Java. * Prise en charge de l'analyse de la mémoire Windows ARM64. [v5.9](https://github.com/ufrisk/MemProcFS/releases/tag/v5.9) * Corrections de bugs. * Améliorations des modules : ntfs, procinfo, web. * API C# : améliorations. * API Java : prise en charge de java.lang.foreign (JDK21+) pour des accès mémoire efficaces. * Améliorations des performances PCIe FPGA sous Linux. * FindEvil : Les règles Yara déclenchées sont désormais affichées. * FindEvil : Détections AV de Windows Defender résidant sur le système analysé. * API Python : nouvelles fonctionnalités (multi-read, type-read) et performances de lecture scatter améliorées. * Prise en charge des fichiers de vidage mémoire Proxmox. [v5.10](https://github.com/ufrisk/MemProcFS/releases/tag/v5.10) * Prise en charge de la version Windows 11 24H2. * Corrections de bugs. * Ajout d'objets _SECTION nommés à la carte VAD. * Améliorations de `-memmap auto`. * Prise en charge des fichiers d'hibernation. * FindEvil : Détection UM APC. Merci [@thejanit0r](https://github.com/thejanit0r) pour la contribution. * [Module Sysinfo](https://github.com/ufrisk/MemProcFS/wiki/FS_Sys_Sysinfo) pour des informations système faciles à lire. * [Module Eventlog](https://github.com/ufrisk/MemProcFS/wiki/FS_Misc_Eventlog) pour un accès pratique aux fichiers de journal d'événements. * L'API de recherche binaire permet désormais jusqu'à 16M de termes de recherche (contre 16 précédemment). * Analyse des Prefetch. [v5.11](https://github.com/ufrisk/MemProcFS/releases/tag/v5.11) * Corrections de bugs. * [Nouvelle API C# Vmmsharp](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp). [v5.12](https://github.com/ufrisk/MemProcFS/releases/tag/v5.12) * Corrections de bugs. * mises à jour (FindEvil, nouvelles signatures, etc.). * Nouvelles API pour les objets Kernel, les pilotes et les périphériques. [v5.13](https://github.com/ufrisk/MemProcFS/releases/tag/v5.13) * Corrections de bugs. * Nouveau [module console](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Console) ajouté. * Améliorations de la récupération de fichiers (tailles de fichiers, informations de signature) pour le [module files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files). * Fonctionnalité de l'API de rappel mémoire (API C/C++ uniquement). * [Analyse des callstacks](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Threads) pour les callstacks des processus en mode utilisateur x64. [v5.14](https://github.com/ufrisk/MemProcFS/releases/tag/v5.14) * Corrections de bugs. * Prise en charge de la compilation clang sous Linux. * Prise en charge de macOS. [v5.15](https://github.com/ufrisk/MemProcFS/releases/tag/v5.15) * Corrections de bugs. * Prise en charge de LeechAgent sous Linux via gRPC (LeechCore v2.21). * Nouvelle détection FindEvil : High Entropy. * [Analyse du cache DNS](https://github.com/ufrisk/MemProcFS/wiki/FS_SysInfo_Network). Merci [@MattCore71](https://github.com/MattCore71) pour la contribution. [v5.16](https://github.com/ufrisk/MemProcFS/releases/tag/v5.16) * Corrections de bugs. * Prise en charge de Windows 11 25H2 </details> [v5.17](https://github.com/ufrisk/MemProcFS/releases/tag/v5.17) * Prise en charge de Windows 11 26H1. * Analyse du registre améliorée. * Nouvelles options de rafraîchissement dans l'API. * Nouveau rappel de journalisation optionnel dans l'API. * Prise en charge des caractères non-ASCII dans les chemins de fichiers. [v5.18](https://github.com/ufrisk/MemProcFS/releases/tag/v5.18) * Corrections de bugs. * Nouveau module : analyseur Windows Terminal (Win11+). * Nouveau module forensique : analyseur amcache (Win10+). * Limite supérieure de la carte PTE ajustée de 65536 à 131072. * Correction : les écritures de fichiers dans MemProcFS monté sous WSL (drvfs) fonctionnent désormais. [v5.19](https://github.com/ufrisk/MemProcFS/releases/tag/v5.19) * Prise en charge de Windows 11 26H2. * Corrections de bugs. * Correction : la récupération du tas fonctionne désormais sur Windows 11 24H2 et versions ultérieures. * Correction : analyse du Pool et du Heap améliorée. * Correction : taux de récupération de la mémoire compressée améliorés. * Nouveau module : /sys/eventlog (récupération du journal d'événements Windows). * Nouveau module : /sys/proc/cpu - utilisation CPU des processus, actuelle et totale. * Nouvelle fonction API : VMMDLL_MemVirtualQuery. * Nouvelle fonction API : VMMDLL_WinReg_QueryNameOriginalU.