
Outil Windows pour extraire les fichiers PE de malware de la mémoire vers le disque à des fins d'analyse.
Process Dump est un outil en ligne de commande de rétro-ingénierie pour Windows permettant de vider les composants mémoire des logiciels malveillants sur le disque en vue d'une analyse. Souvent, les fichiers malveillants sont packés et obscurcis avant d'être exécutés afin d'éviter les scanners antivirus, mais lorsqu'ils sont exécutés, ils se décompressent ou injectent une version propre du code malveillant en mémoire. Une tâche courante pour les chercheurs en malwares lors de l'analyse est de vider ce code décompressé de la mémoire vers le disque pour le scanner avec des produits antivirus ou pour l'analyser avec des outils d'analyse statique tels qu'IDA.
Process Dump fonctionne sur les systèmes d'exploitation Windows 32 et 64 bits et peut vider les composants mémoire de processus spécifiques ou de tous les processus en cours d'exécution. Process Dump prend en charge la création et l'utilisation d'une base de données de hachages propres, afin que le vidage de tous les fichiers propres tels que kernel32.dll puisse être ignoré. Ses principales fonctionnalités incluent :
Je maintiens une version compilée officielle sur mon site Web ici : https://split-code.com/processdump.html
Vous pouvez télécharger la dernière version compilée de Process Dump ici :
Ceci est conçu pour Visual Studio 2019 et fonctionne avec l'édition Community gratuite. Ouvrez simplement le fichier projet avec VS2019 et compilez, cela devrait être aussi simple que cela !
Process Dump peut être utilisé pour vider tout code inconnu de la mémoire (indicateur '-system'), vider des processus spécifiques, ou fonctionner en mode surveillance qui vide tous les processus juste avant leur terminaison.
Avant la première utilisation de cet outil, lorsque vous êtes sur le poste de travail propre, la base de données de hachages d'exclusion propres peut être générée soit par :
Exemples d'utilisation :
Les arguments en ligne de commande peuvent être regroupés comme suit :
Options générales de vidage
| Option | Description |
|---|---|
| -system | Vide tous les modules ne correspondant pas à la base de données de hachages propres de tous les processus accessibles dans le répertoire de travail. |
| -pid <pid> | Vide tous les modules ne correspondant pas à la base de données de hachages propres du PID spécifié dans le répertoire de travail actuel. Utilisez un préfixe '0x' pour spécifier un PID hexadécimal. |
| -closemon | Fonctionne en mode surveillance. Lorsque des processus se terminent, process dump les vide d'abord. |
| -p <nom du processus regex> | Vide tous les modules ne correspondant pas à la base de données de hachages propres du nom de processus trouvé correspondant au filtre dans le PID spécifié, dans le répertoire de travail actuel. |
| -a <adresse de base du module> | Vide un module à l'adresse de base spécifiée dans le processus. |
| -o <chemin> | Définit le dossier racine de sortie par défaut pour les composants vidés. |
Options de la base de données de hachages propres
| Option | Description |
|---|---|
| -db gen | Traite automatiquement quelques dossiers courants ainsi que tous les processus en cours d'exécution et ajoute les hachages des modules trouvés à la base de données de hachages propres. Ajoute récursivement tous les fichiers dans : %WINDIR%, %HOMEPATH%, C:\Program Files\, C:\Program Files (x86)\, ainsi que tous les modules de tous les processus en cours. Ces hachages propres seront ajoutés au fichier clean.hashes dans le répertoire de l'application. Lors des futures commandes de vidage de processus, ces modules connus ne seront pas vidés. Il est recommandé d'exécuter cette commande une fois sur un système propre avant d'utiliser l'outil afin de ne pas vider trop de modules de la mémoire. |
| -db genquick | Identique à ci-dessus, mais ajoute uniquement les hachages de tous les modules de tous les processus à la base de données de hachages propres. C'est un moyen beaucoup plus rapide de construire la base de données de hachages propres, mais elle sera moins complète. |
| -db add <répertoire> | Ajoute récursivement tous les fichiers du répertoire spécifié à la base de données de hachages propres. |
| -db rem <répertoire> | Supprime récursivement tous les fichiers du répertoire spécifié de la base de données de hachages propres. |
| -nr | Désactive la récursivité sur les commandes d'ajout ou de suppression de répertoire de la base de données de hachages. |
| -db clean | Efface la base de données de hachages propres. |
| -db ignore | Ignore la base de données de hachages propres lors du vidage d'un processus cette fois-ci. Tous les modules seront vidés même si une correspondance est trouvée. |
| -cdb <chemin du fichier> | Chemin complet du fichier vers la base de données de hachages propres à utiliser pour cette exécution si vous souhaitez remplacer la valeur par défaut de clean.hashes. |
| -edb <chemin du fichier> | Chemin complet du fichier vers la base de données de hachages des points d'entrée à utiliser pour cette exécution. |
| -esdb <chemin du fichier> | Chemin complet du fichier vers la base de données de hachages courts des points d'entrée à utiliser pour cette exécution. |
Options de sortie
| Option | Description |
|---|---|
| -v | Mode verbeux où plus de détails seront affichés pour le débogage. |
| -nh | Aucun en-tête n'est affiché dans la sortie. |
Options avancées
| Option | Description |
|---|---|
| -g | Force la génération d'en-têtes PE à partir de zéro, en ignorant les en-têtes existants. |
| -eprec | Force la reconstruction du point d'entrée, même si un point d'entrée valide semble exister. |
| -ni | Désactive la reconstruction des importations. |
| -nc | Désactive le vidage des régions de code détachées. |
| -nt | Désactive le multithreading. |
| -nep | Désactive le hachage du point d'entrée. |
| -t <nombre de threads> | Définit le nombre de threads à utiliser (par défaut 16). |