Sommaire

Qu’est-ce qu’un Processus Windowsprocessus Windows ?

1. Introduction

Lorsqu’on exécute un processus sous Windows, le système d’exploitation va automatiquement créer un espace mémoire pour celui-ci et un premier thread. Chaque processus en cours d’exécution dispose d’une structure le décrivant, appelée Process Environment Block ( Processus Windows:PEBPEB). Chaque processus dispose d’un ou plusieurs threads. Un thread est un fil d’exécution. Les threads sont exécutés en parallèle. Chaque thread dispose de sa propre pile (stack, que nous verrons au prochain chapitre) et d’une structure le définissant appelée Thread Environment Block ( Processus Windows:TEBTEB). Les threads peuvent accéder à la mémoire du processus. Voici donc un schéma résumant un processus :

images/03EP01.PNG

2. Process Environment Block

Il est possible de lire le contenu de la PEB d’un processus. Voici un exemple de PEB du processus cmd.exe vu par le débogueur de Microsoft : WinDBG. L’adresse mémoire à laquelle se trouve la structure PEB est stockée dans $PEB :

0:001> r $PEB 
$peb=0000000301292000

À partir de cette adresse, nous pouvons vérifier le contenu de la structure PEB :

0:001> dt _PEB 0000000301292000 
ntdll!_PEB 
   +0x000 InheritedAddressSpace : 0 ’’ 
   +0x001 ReadImageFileExecOptions : 0 ’’  ...