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.)

Était-ce utile?

La solution

référence EPROCESS

  

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:

  1. Télécharger volatility
  2. Exécuter volatility sur une de leurs décharges mémoire d'échantillons ou de votre propre décharge si vous voulez.
  3. 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

ou vous pouvez simplement voir le contenu de la structure

Ce pourrait également se révéler utile

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top