10
votes

Comment puis-je extraire le fichier dll de la mémoire de mémoire?

J'ai un dépotoir de mémoire (processus non géré). Comment puis-je extraire (en utilisant WINDBG) l'une des DLL chargées dans le processus? Je veux dire en réalité enregistrer le fichier dll dans le disque


0 commentaires

3 Réponses :


6
votes

Vous pouvez utiliser le répertoire sos.dll à l'intérieur de Windbg.

Premièrement, chargez-le à Windbg: P> xxx pré>

puis utilisez! Sam ou! Sam ou! SaveAllModule à Extraire les modules sur l'emplacement de disque spécifique: P>

!sam c:\notepad


0 commentaires

4
votes

Pour extraire une DLL sans utiliser SOS, utilisez l'extension .writemem comme suit:

  1. Découvrez les adresses de démarrage et de fin du module en utilisant lmvm dllname
    Exemple de sortie pour iEFrame:
    Démarrer le nom du module d'extrémité
    61370000 61FB8000 IEFRAME

  2. Calculez la longueur = Démarrage de la fin: ? 61fb8000 - 61370000
    Sortie: Evaluez l'expression: 12877823 = 00c48000

  3. Enregistrer la DLL comme suit:
    .writemem c: \ tmp \ mydll.dll 61370000 l? 00c48000

    Ceci est peu susceptible de vous donner la DLL exacte car elle a été chargée à partir de disque, la fixation de ce haut est non triviale.

    (partiellement basé sur Cet article )


2 commentaires

J'ai essayé ça mais ça n'a pas fonctionné. J'ai attaché WINDBG à CALC.EXE et a écrit l'EXE et a obtenu un fichier plus gros. Étrange.


Je suppose que cela est dû aux divergences dans l'alignement - Les fichiers PE32 prennent plus d'espace dans la mémoire que sur le disque en raison des besoins en alignement de la mémoire plus importants. Vous devez reconstruire correctement l'exécutable après que cela soit largué pour répondre à ces règles. En outre, la section de débogage n'est pas larguée (car elle n'est pas cartographiée, je suppose). Les tables d'importation ont également besoin de reconstruction.



-2
votes

Oui, c'est vrai. CALC.EXE extraire également ses informations d'interface de langue d'utilisateur multi-utilisateurs et la joindre à la mémoire, de même que de nombreux programmes Windows tels que MSPaint, photoviewer, etc.


0 commentaires