
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 d'un malware vers le disque pour analyse. Souvent, les fichiers malveillants sont packés et obfusqués avant leur exécution afin d'échapper aux scanners antivirus ; toutefois, lorsqu'ils sont exécutés, ils décompressent ou injectent fréquemment une version propre du code malveillant en mémoire. Une tâche courante pour les chercheurs en malware lors de l'analyse consiste à vider ce code décompressé depuis la mémoire vers le disque afin de le scanner avec des produits antivirus ou de 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 de pouvoir ignorer le vidage de fichiers connus tels que kernel32.dll. Ses principales fonctionnalités incluent :
-closemon), où les processus hookés sont mis en pause et vidés juste avant leur terminaison.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 :
Utilisez pd64.exe sous Windows 64 bits (recommandé), ou pd32.exe sous Windows 32 bits. Les deux binaires sont autonomes ; aucun Microsoft Visual C++ Redistributable n'est requis.
Process Dump peut vider tout le code inconnu depuis la mémoire (-system), vider des processus spécifiques, ou surveiller des processus et les vider avant leur terminaison.
Sur un poste de travail propre, générez une base de données de référence avec l'une des commandes suivantes :
pd64.exe -db genquickpd64.exe -db genExécutez la génération de la base de données et le vidage en tant que commandes séparées. Pour un accès optimal, exécutez en tant qu'Administrateur. Le nombre de workers par défaut est de 16.
Exemples d'utilisation :
pd64.exe -systempd64.exe -pid 419pd64.exe -pid 0x1a3pd64.exe -pid 0x1a3 -a 0x401000 -o C:\dumpspd64.exe -p "chrome[.]exe"pd64.exe -p ".*chrome.*"pd64.exe -closemonOptions générales de vidage
| Option | Description |
|---|---|
-system | Vide les modules et le code isolé ne correspondant pas à la base de données de hachages propres, depuis tous les processus accessibles. |
-pid <pid> | Vide un processus spécifique. Utilisez un PID décimal ou préfixé par 0x pour l'hexadécimal. |
-closemon | Hooke la terminaison des processus et les vide avant leur sortie. À utiliser dans un environnement contrôlé ; appuyez sur Ctrl+C pour arrêter. |
-p <regex> | Vide les processus dont le nom complet correspond à une expression régulière sensible à la casse. En cas de correspondances multiples, une confirmation est demandée. |
-a <address> | Vide à l'adresse de base spécifiée. Nécessite -pid ; accepte le décimal ou l'hexadécimal préfixé par 0x. |
-o <path> | Définit le dossier de sortie (par défaut : répertoire de travail courant). Créez le dossier au préalable ; les fichiers existants ne sont jamais écrasés. |
Options de la base de données de hachages propres
Les fichiers de base de données sont par défaut dans le répertoire de l'application : clean.hashes, entrypoints.hashes et shortentrypoints.hashes.
| Option | Description |
|---|---|
-db gen | Ajoute les hachages des processus en cours d'exécution et des fichiers PE de manière récursive dans %WINDIR%, %USERPROFILE%, C:\Program Files et C:\Program Files (x86). |
-db genquick | Ajoute uniquement les hachages des processus en cours d'exécution. Plus rapide que gen, mais moins complet. |
-db add <dir> | Ajoute les hachages des fichiers PE du répertoire spécifié de manière récursive, y compris les signatures de point d'entrée. |
-db remove <dir>, -db rem <dir> | Supprime les hachages de modules propres correspondants du répertoire de manière récursive. Les signatures de point d'entrée sont conservées. |
-nr | Désactive la récursion pour les commandes d'ajout/suppression de base de données. N'affecte pas -db gen. |
-db clean | Efface les trois bases de données, y compris les signatures de point d'entrée. |
-db ignore | Ignore les trois bases de données chargées pour ce dump sans modifier les fichiers. Les modules répétés peuvent toujours être ignorés au cours de l'exécution. |
-cdb <filepath>, -c <filepath> | Définit le chemin de la base de données de hachages propres. |
-edb <filepath> | Définit le chemin de la base de données de hachages de points d'entrée. |
-esdb <filepath> | Définit le chemin de la base de données de hachages courts de points d'entrée. |
Options de sortie
| Option | Description |
|---|---|
-v | Affiche des diagnostics détaillés. |
-nh | Supprime la bannière de version/copyright. |
--help, -help, -h, --h | Affiche l'aide et quitte. Une exécution sans arguments affiche également l'aide. |
Options avancées
| Option | Description |
|---|---|
-g | Force la génération des en-têtes PE 32 bits et 64 bits, en ignorant les en-têtes existants. |
-eprec | Force la récupération du point d'entrée même si un point d'entrée valide existe. La récupération est heuristique ; une recherche infructueuse laisse l'ancienne valeur inchangée. |
-ni | Désactive la reconstruction agressive des imports (activée par défaut). |
-nc | Désactive le dump et le hachage du code libre (activés par défaut). |
-nep | Désactive la récupération du point d'entrée et le hachage du point d'entrée en direct, en remplaçant -eprec. La génération de la base de données de fichiers collecte toujours les signatures de point d'entrée. |
-reexec | Préparation expérimentale pour réexécuter les dumps. Écarte certains états capturés et suppose la disposition d'origine des sections ; n'exécute pas le dump et ne garantit pas qu'il fonctionnera. Désactivé par défaut. |
-nt | Utilise un seul worker, équivalent à -t 1. La surveillance de fermeture dispose toujours d'un thread de surveillance distinct. |
-t <count> | Définit le nombre de workers (16 par défaut, minimum 1) pour le dump système, la génération de base de données et la surveillance de fermeture. Les dumps directs par PID/nom restent synchrones. Le dernier -t/-nt l'emporte. |