Les événements du debugger

Nous allons revenir sur la fonction WaitForDebugEvent() qui nous retourne la structure DEBUG_EVENT.

Cette structure contient beaucoup d’information dont dwDebugEventCode qui va particulièrement nous intéresser, elle va nous indiquer quel type d’événement a eu lieu.

En regardant la valeur de dwDebugEventCode, nous pourrons ainsi déterminer l’événement.

Code d’événement

Valeur du code

Valeur de l’union u

0x1

EXCEPTION_DEBUG_EVENT

u.Exception

0x2

CREATE_THREAD_DEBUG_EVENT

u.CreateThread

0x3

CREATE_PROCESS_DEBUG_EVENT

u.CreateProcessInfo

0x4

EXIT_THREAD_DEBUG_EVENT

u.ExitThread

0x5

EXIT_PROCESS_DEBUG_EVENT

u.ExitProcess

0x6

LOAD_DLL_DEBUG_EVENT

u.LoadDll

0x7

UNLOAD_DLL_DEBUG_EVENT

u.UnloadDll

0x8

OUTPUT_DEBUG_STRING_EVENT

u.DebugString

0x9

RIP_EVENT

u.RipInfo

Ajoutons donc maintenant quelques définitions à mon_debugger3.py qui devient donc mon_debugger_final.py

Nous utiliserons mon_debugger_final.py jusqu’à la fin de ce chapitre, des fonctions que nous verrons ultérieurement y ont déjà été placées.

mon_debugger_final.py


from ctypes import * 
from mes_definitions_debugger_final import * 
 
import sys 
import time 
kernel32 = windll.kernel32 
 
class debugger(): 
 
    def __init__(self): 
        self.h_process       =     None 
        ...
couv_EP2HAFO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
État des registres
Suivant
Les points d’arrêt (breakpoints)