Réponse acceptée !
En fait une bonne partie des instructions assembleur affecte les flags
(signe, carry, ...), il est possible de convertir le résultat, retenue
par exemple, en un offset qui permettra de moduler un déplacement.
A partir du moment ou le registre d'état aura été affecté les instructions suivantes:
LAHF, RCL (RCR), SALC permettront de définir un déplacement qui pourra être mis à profit lors d'un JMP indirect.
Autre possibilité de saut (à risque), utiliser les instructions suivantes:
instuction précédente xxx
instruction de saut
Call Routine
instruction normale après appel yyy
Routine
comparaison (discrète)
calcul d'une adresse
mov [esp],adresse souhaitée
ret
L'instruction mov [esp],adresse remplace l'adresse de retour empilée
(eip) par la nouvelle adresse. Le Call est en fait un jump déguisé