Description des processus Windows
-
18-09-2019 - |
Question
Il y a un Flink et Blink (Forward Link et lien vers l'arrière) pour une liste double des processus liés. Il y a un identificateur de processus. Tout cela est emballé dans une struct qui est référencée comme PEPROCESS ou _KPROCESS. Mais où sont ceux et quels sont les autres éléments de cette structure?
Ou, si la réponse est ni rapide, ni simple, où peut-on trouver des références sinon dans la documentation ou les fichiers en-tête? (Ce qui est l'endroit que je regardais et probablement oublié quelque chose.)
La solution
La structure de EPROCESS est un opaque la structure qui sert de processus objet pour un processus.
Certaines routines, comme PsGetProcessCreateTimeQuadPart, utilisation EPROCESS pour identifier le processus opérer. Les conducteurs peuvent utiliser la routine PsGetCurrentProcess pour obtenir un pointeur vers l'objet de traitement pour le processus en cours et peut utiliser la routine ObReferenceObjectByHandle à obtenir un pointeur vers l'objet de processus qui est associé à la spécifiée manipuler. le PsInitialSystemProcess des points variables globales au processus objet pour le processus de système.
Notez qu'un objet de processus est un Objet objet Manager. Les conducteurs doivent utiliser l'objet routines Manager telles que ObReferenceObject et ObDereferenceObject pour maintenir la le compteur de référence de l'objet.
Cela signifie que vous ne devriez pas se soucier de ce que les membres d'une structure du processus sont. Néanmoins, il y a des sources qui détaillent la mise en page de la structure du processus.
livre a une description plus en détail ce que l'individu les membres sont.
Autres conseils
La structure EPROCESS est documentée dans les fenêtres symboles de débogage.
Lorsque vous êtes connecté à un noyau avec windbg, en supposant que vous avez les symboles de débogage correctement mis en place, exécutant la commande « dt nt! _EPROCESS » devrait vous donner la mise en page pour la struct EPROCESS spécifique à la version du noyau que vous êtes attaché à .
La structure de EPROCESS sont particulièrement opaques et ne peut être trouvée par la construction, en examinant les types de données exportés par la construction des symboles de débogage.
Vous pouvez faire ce qui suit:
- Télécharger
volatility
- Exécuter
volatility
sur une de leurs décharges mémoire d'échantillons ou de votre propre décharge si vous voulez. -
Utilisation du plug-in volshell.py, exécuter
dt('_EPROCESS')
Ceci produirait une sortie de la structure de EPROCESS et diverses autres structures dans le noyau Windows