Dumper les strings en memoire d’un processus

Ceux qui lisent les billets régulièrement ont certainement vu que je me basais beaucoup sur les strings en mémoire d’un processus dans les analyses de malwares.
On retrouve beaucoup de captures de Process Explorer par exemple sur le billet des Backdoor IRC ; seulement parfois,   Process Explorer n’est pas capable de dumper la partie mémoire d’un processus, notamment pour ceux écrits en .NET comme c’est le cas de beaucoup de Rats.

Voici quelques méthodes alternatifs pour récupérer les strings mémoire d’un processus.
On peux utiliser les Windows Debugging Tools  – pour les programmes en .NET, vous pouvez vous reporter à ce lien qui expliquant comment faire : http://blogs.msdn.com/b/joncole/archive/2007/03/29/creating-a-process-memory-dump.aspx

A partir de Windows Vista, le gestionnaîre de tâches permet dumper la mémoire d’un processus, pour cela, faites un clic droit sur le processus en question puis Créer un fichier de vidage

Le gestionnaîre de tâches créé alors le .dump dans le répertoire %TEMP%

Le fichier .dump créé contient des datas qui contiennent des strings (ce qui nous interresse pour nous les humains), le programme Strings (disponible aussi sous GNU/Linux) permet d’extraire les strings.
Dans notre exemple, on retrouve alors à gauche les commandes IRC de cette backdoor IRC
et à droite des commandes, les informations de création d’un fichier autorun et la marque nrgbot.

Comme vous pouvez le voir donc, les informations sont assez utiles, ici sans nul doute, on a affaire à un malware.


Windows XP, via la commande ntsd permet de lancer un debbuger (l’option -p suivi du pid pour cibler le processus en question).


La commande .dump /f c:\foo.dmp permet d’effectuer un dump complet.

Usage: .dump [options] filename
Options are:
  /a - Create dumps for all processes (requires -u)
  /c <comment> - Add a comment (not supported in all formats)
  /f - Create a full dump
  /m[f][h] - Create a minidump (default)
  /u - Append unique identifier to dump name

A nouveau, à partir du programme Strings, on récupère les strings.

Du coup, j’ai pondu un batch, ça peux servir, qui permet de dumper automatiquement un processus file.exe, ça peux toujours servir : http://www.malekal.com/download/DumpStringMemory.zip
Placer le processus dont vous souhaitez récupérer les strings en le nommant file.exe dans le répertoire et lancer go.cmd.
Le batch lance le programme et récupère les informations en mémoire. Dans le cas d’un malware, à faire sur une VM.

Le batch utilise les trois programmes suivants de SysInternals :

Comment lire d'autres tutoriels de malekal.com ?

Si le site vous a aidé, svp, débloquez les bloqueurs de publicités, n'hésitez pas non plus à partager l'article ou le site sur les réseaux sociaux.

Pour pouvoir lire plus d'articles et tutoriels, utilisez le menu en haut du site. Plein d'articles et tutos utiles vous attendent !

Besoin d'aide ?

Posez votre question ou soumettez votre problème sur le forum malekal.com pour obtenir une aide efficace : Aller sur le forum malekal.com
(Visited 104 times, 1 visits today)

One thought on “Dumper les strings en memoire d’un processus

  1. Salut.
    J’ai essayé ton batch je sais pas si c’est moi qui rate un truc, mais à chaque fichier testé il me dit
    impossible de trouver c:\….\DumpStringMemory\file.dmp

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *