Retour <-- Vers Partie 1 Vers Partie 2 -->Retour
.elseif DBEvent.dwDebugEventCode==EXCEPTION_DEBUG_EVENT
Il faut savoir que lorsqu'on on s'attache à un autre programme (la cible), avant même que sa première
instruction soit exécutée, on obtient une fois et une seule le 'Debugging événement' :
EXCEPTION_DEBUG_EVENT (qui est un BPint 03h). Mais on obtient aussi cet événément si quelquepart dans
la cible s'y trouve l'instruction INT 03h.
Donc ici et jusqu'au .endif , on détecte cet événement et si il provient
d'un véritable INT 03h dans la cible, alors on relance la cible avec '.continue'.
C'est vraiment super ça!... non?
Un programme qui possède un INT 03h devrait normalement être arrêté et causer un :
'Ce programme va être arrêté parce qu'il a effectué une opération non conforme'
Et bien là, non car on reprend le lien.
Tiens, juste pour rire, enlevez le JUMP de la cible pour qu'elle fonctionne normalement et à la place
de ce JUMP, mettez INT 03h, ça va planter!
Maintenant, remettez le JUMP et placez un INT 03h n'importe où après lui. servez vous du Debugger pour
effacer le JUMP, et vous verrez que là la cible ne plantera pas car votre debugger possède aussi cette
routine qui relance le lien si on tombe sur une INT 03h.
Retour <-- Vers Partie 1 Vers Partie 2 -->Retour