@@ -176,47 +176,49 @@ redémarrage du système, est simplement chargé en tant que pilote Windows (`.s
...
@@ -176,47 +176,49 @@ redémarrage du système, est simplement chargé en tant que pilote Windows (`.s
[^3]: [Subverting Vista™ Kernel For Fun and Profit](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2008/08/20084218/BH-US-06-Rutkowska.pdf)
[^3]: [Subverting Vista™ Kernel For Fun and Profit](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2008/08/20084218/BH-US-06-Rutkowska.pdf)
## Principe de fonctionnement
{width="90%"}
## Déroulement du code source -- étapes clés
## Déroulement du code source -- étapes clés
::: {.incremental}
::: {.incremental}
- Lancement du pilote -- `DriverEntry`
- Lancement du pilote $\rightarrow$ **`DriverEntry`**
- Préparation du CPU
- Préparation du CPU
- Épinglage de l'exécution -- `KeSetSystemAffinityThread`
- **Épinglage** de l'exécution $\rightarrow$ **`KeSetSystemAffinityThread`**
- Contexte de l'hyperviseur
- Allocation du contexte de l'hyperviseur
- Pile noyau
- Pile noyau
- Utilisé lors des gestions des **interceptions de l'invité**
- GDT et IDT
- GDT et IDT
- Initialisation du VMCB
- Gestion des **zones mémoire** et **interruptions** respectivement
- Définition des interceptions -- `SvmSetupControlArea`
- Initialisation du **VMCB**
- État des registres de travaux du CPU -- `SvmInitGuestState`
- Définition des interceptions $\rightarrow$ **`SvmSetupControlArea`**
- État des registres de travaux du CPU $\rightarrow$ **`SvmInitGuestState`**
- Subversion de l'OS
- Subversion de l'OS
- Chargement du VMCB via `VMLOAD`
- Chargement du VMCB avec \textcolor{red}{l'état de l'OS} via **`VMLOAD`**