Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Process-Dump — Outil Windows pour extraire les fichiers PE de malware de la mémoire vers le disque à des fins d'analyse. | Kitploit
Outils/GitHubGitHub/glmcdona/process-dump
Criminalistique MémoireRétro-ingénierieAnalyse ForensiqueAnalyse de MalwareAnalyse de Binaires
GitHubglmcdona/process-dump

Process-Dump

Outil Windows pour extraire les fichiers PE de malware de la mémoire vers le disque à des fins d'analyse.

Voir le dépôt
1.9k2834il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Process Dump

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 :

  • Vide le code d'un processus spécifique ou de tous les processus.
  • Trouve et vide les modules cachés qui ne sont pas correctement chargés dans les processus.
  • Trouve et vide les morceaux de code détachés même s'ils ne sont pas associés à un fichier PE. Il construit un en-tête PE et une table d'importation pour ces morceaux.
  • Reconstruit les importations en utilisant une approche agressive.
  • Peut fonctionner en mode de surveillance de vidage à la fermeture ('-closemon'), où les processus sont mis en pause et vidés juste avant leur terminaison.
  • Multi-threadé, donc lorsque vous videz tous les processus en cours, cela va assez vite.
  • Peut générer une base de données de hachages propres. Générez-la avant que la machine ne soit infectée par un logiciel malveillant, afin que Process Dump ne vide que les nouveaux composants malveillants.

Je maintiens une version compilée officielle sur mon site Web ici : https://split-code.com/processdump.html

Installation

Vous pouvez télécharger la dernière version compilée de Process Dump ici :

  • https://github.com/glmcdona/Process-Dump/releases

Compilation du code source

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 !

Arguments en ligne de commande

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 :

  • pd -db genquick
  • pd -db gen

Exemples d'utilisation :

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

Les arguments en ligne de commande peuvent être regroupés comme suit :

Options générales de vidage

Options de la base de données de hachages propres

Options de sortie

OptionDescription
-vMode verbeux où plus de détails seront affichés pour le débogage.
-nhAucun en-tête n'est affiché dans la sortie.

Options avancées

Exemples d'utilisation

Voici une version simplifiée de l'information :

Utilisation en bac à sable (sandbox)

Lorsque vous utilisez Process Dump dans un bac à sable automatisé ou pour une recherche manuelle anti-malware, les étapes suivantes peuvent être utiles. Assurez-vous d'exécuter toutes les commandes en tant qu'Administrateur dans un environnement propre.

  • Construire la base de données de hachages propres : Exécutez pd64.exe -db gen ou, pour un processus plus rapide mais moins complet, utilisez pd64.exe -db genquick. Selon votre situation, vous pouvez prendre un instantané de votre VM après avoir créé cette base de données de hachages propres afin de ne pas avoir à répéter cette opération à chaque fois.

  • Démarrer le moniteur de terminaison de Process Dump : Gardez pd64.exe -closemon en cours d'exécution en arrière-plan. Il videra tous les processus intermédiaires utilisés par le logiciel malveillant.

  • Exécuter le fichier malveillant : Surveillez l'installation du logiciel malveillant. pd64.exe videra automatiquement tout processus qui tente de se fermer.

  • Vider le logiciel malveillant en cours d'exécution de la mémoire : Lorsque vous êtes prêt, utilisez pd64.exe -system pour vider tous les processus.

Les composants vidés se trouveront dans le répertoire de travail de pd64.exe. Pour modifier le chemin de sortie, utilisez l'indicateur -o.

Remarques sur la convention de nommage des modules vidés :

  • 'hiddemodule' dans le nom du fichier au lieu du nom du module indique que le module n'était pas correctement enregistré dans le processus.
  • 'codechunk' dans le nom du fichier signifie qu'il s'agit d'un vidage reconstruit à partir d'une région exécutable détachée. Il peut s'agir, par exemple, de code injecté qui n'avait pas d'en-tête PE. Les codechunks seront vidés deux fois, une fois avec un en-tête x86 reconstruit et une autre fois avec un en-tête x64 reconstruit.

Exemples de noms de fichiers des fichiers vidés

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

Historique des versions

Version 2.1 (12 février 2017)

  • Correction d'un bogue où la dernière section était dans certains cas remplie de zéros. Merci à megastupidmonkey d'avoir signalé ce problème.
  • Correction d'un bogue où les adresses de base 64 bits étaient tronquées en une adresse 32 bits. L'adresse de base complète du module 64 bits est désormais correctement conservée. Merci à megastupidmonkey d'avoir signalé ce problème.
  • Résolution d'un problème où le moniteur de fermeture des processus provoquait un crash de csrss.exe.
  • Arrêt du crochet de son propre processus par Process Dump en mode de surveillance de fermeture.

Version 2.0 (18 septembre 2016)

  • Ajout d'un nouvel indicateur '-closemon' qui exécute Process Dump en mode surveillance. Il met en pause et vide tout processus juste au moment de sa fermeture. Ceci est conçu pour bien fonctionner avec les bacs à sable d'analyse de malwares, afin d'être sûr de vider les malwares de la mémoire avant que le processus malveillant ne se ferme.
  • Mise à niveau de Process Dump pour qu'il soit multi-threadé. Les commandes qui vident ou obtiennent des hachages de plusieurs processus exécuteront des threads séparés par opération. Le nombre de threads par défaut est de 16, ce qui accélère considérablement le traitement général du vidage de Process Dump.
  • Mise à niveau de Process Dump pour vider les morceaux de code non attachés trouvés en mémoire. Ceux-ci sont identifiés comme des régions exécutables en mémoire qui ne sont pas attachées à un module et n'ont pas d'en-tête PE. Il exige également que le codechunk fasse référence à au moins 2 importations pour être considéré comme valide afin de réduire le bruit. Lors du vidage, un en-tête PE est recréé ainsi qu'une table d'importation. Les code chunks sont entièrement pris en charge par la base de données de hachages propres.
  • Ajout d'indicateurs pour contrôler le chemin d'accès à la base de données de hachages propres ainsi que le dossier de sortie pour les fichiers vidés.
  • Correction de la génération de la base de données de hachages propres à partir du chemin utilisateur qui provoquait un crash.
  • Correction de l'indicateur '-g' qui force la génération d'en-têtes PE. Auparavant, même si cet indicateur était défini, les vidages système (-system) ignoraient cet indicateur lors du vidage d'un processus.
  • Diverses améliorations de performance.
  • Mise à niveau du projet vers VS2015.

Version 1.5 (21 novembre 2015)

  • Correction d'un bogue où des régions mémoire très volumineuses provoquaient le blocage de Process Dump.
  • Correction d'un bogue où certains modules à des adresses élevées n'étaient pas trouvés sous Windows 64 bits.
  • Davantage d'informations de débogage sont maintenant affichées en mode Verbeux.

Version 1.4 (18 avril 2015)

  • Ajout d'une nouvelle approche agressive de reconstruction des importations. Corrige désormais tous les DWORD et QWORD dans le module pour correspondre à l'exportation correspondante.
  • Ajout de l'indicateur '-a (adresse à vider)' pour vider une adresse spécifique. Il générera des en-têtes PE et construira une table d'importation pour l'adresse.
  • Ajout de l'indicateur '-ni' pour ignorer le nouvel algorithme de reconstruction des importations.
  • Ajout de l'indicateur '-g' pour forcer la génération d'un nouvel en-tête PE même s'il en existe déjà un lors du vidage d'un module. Ceci est utile si l'en-tête PE est mal formé par exemple.
  • Diverses corrections de bogues.

Version 1.3 (10 octobre 2013)

  • Gestion améliorée des en-têtes PE avec des sections qui spécifient des tailles et adresses virtuelles invalides.
  • Meilleure méthodologie de vidage de module pour vider les sections virtuelles vers les sections disque.

Version 1.1 (8 avril 2013)

  • Correction d'un problème de compatibilité avec Windows XP.
  • Correction d'un bogue où process dump affichait qu'il vidait un module mais ne le vidait pas réellement.
  • Implémentation de l'indicateur de vidage '-pid '.

Version 1.0 (2 avril 2013)

  • Version initiale.
Télécharger l’outil
OptionDescription
-systemVide 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.
-closemonFonctionne 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.
OptionDescription
-db genTraite 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 genquickIdentique à 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.
-nrDésactive la récursivité sur les commandes d'ajout ou de suppression de répertoire de la base de données de hachages.
-db cleanEfface la base de données de hachages propres.
-db ignoreIgnore 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.
OptionDescription
-gForce la génération d'en-têtes PE à partir de zéro, en ignorant les en-têtes existants.
-eprecForce la reconstruction du point d'entrée, même si un point d'entrée valide semble exister.
-niDésactive la reconstruction des importations.
-ncDésactive le vidage des régions de code détachées.
-ntDésactive le multithreading.
-nepDésactive le hachage du point d'entrée.
-t <nombre de threads>Définit le nombre de threads à utiliser (par défaut 16).
CommandeDescription
pd64.exe -db genquickConstruisez rapidement une base de données de modules propres basée sur les processus en cours d'exécution. Process Dump dans les tâches ultérieures ne videra que les modules non reconnus.
pd64.exe -systemVidez tous les modules et les morceaux cachés de tous les processus tout en ignorant les modules propres.
pd64.exe -closemonExécutez en mode surveillance de terminaison. Cela videra tous les processus lorsqu'ils tenteront de se terminer.
pd64.exe -pid 0x18AVidez les modules et les morceaux cachés d'un ID de processus spécifique.
pd64.exe -p .\*chrome.\*Videz les modules et les morceaux cachés par nom de processus.
pd64.exe -db genConstruisez une base de données de hachages propres des modules connus. Cela permet d'éviter de vider les modules connus et bons dans les tâches ultérieures.
pd64.exe -pid 0x1a3 -a 0xffb4000Videz le code d'une adresse spécifique dans le PID. Cela générera deux fichiers pour analyse, avec des en-têtes PE 32 bits et 64 bits reconstruits : notepad_exe_x64_hidden_FFB40000.exe et notepad_exe_x86_hidden_FFB40000.exe.