Glossary
Registre RFLAGS
RFLAGS est le registre d'état 64 bits de x86-64 contenant les drapeaux de condition comme ZF, CF, SF et OF qui pilotent les branchements conditionnels.
RFLAGS est le registre d'état et de contrôle 64 bits de l'architecture x86-64, qui étend les anciens EFLAGS/FLAGS. Ce n'est pas un registre général : au lieu de données, il contient des drapeaux de bits individuels qui enregistrent le résultat des opérations arithmétiques et logiques et contrôlent certains comportements du processeur. La plupart des instructions x86 positionnent ces drapeaux comme effet de bord, et les sauts conditionnels les lisent.
Les principaux drapeaux d'état sont :
- ZF (zéro) — le résultat était nul
- CF (retenue) — débordement / emprunt non signé
- SF (signe) — bit de poids fort du résultat (négatif en signé)
- OF (débordement) — débordement signé
- PF (parité) et AF (retenue auxiliaire) — moins couramment utilisés
Les drapeaux de contrôle incluent DF (direction, qui régit le sens de progression de RSI/RDI dans les opérations sur chaînes) et IF (activation des interruptions). RFLAGS n'est ni passé comme argument ni renvoyé, et il n'existe pas de mov vers lui — il est lu/écrit avec pushfq/popfq ou implicitement.
cmp rax, rbx ; positionne ZF, CF, SF, OF selon rax - rbx
je equal ; saute si ZF=1 (rax == rbx)
jb below ; saute si CF=1 (rax < rbx non signé)
jl less ; saute si SF != OF (rax < rbx signé)Pourquoi c'est important en rétro-ingénierie
Les sauts conditionnels n'ont pas d'opérandes — leur décision réside entièrement dans RFLAGS. Pour suivre un branchement, vous devez savoir quels drapeaux le cmp, test, add ou sub précédent a positionnés. Confondre jb (non signé) avec jl (signé) est une source fréquente d'erreurs de lecture, et patcher un seul saut dépendant d'un drapeau est une technique de cracking courante.
Voir le concept général de registre et la référence assembleur. Le comportement des drapeaux selon les modes est traité dans assembleur x86 vs x64. Le drapeau DF contrôle les opérations sur chaînes pilotées par le registre RSI.