Patching — Modification de binaires

Concepts Outils

Principe

Le patching modifie les octets d'un binaire pour altérer son comportement : contourner une vérification de licence/mot de passe, neutraliser un anti-debug, ou activer une fonctionnalité. Souvent il s'agit d'inverser un saut conditionnel.

Techniques courantes

# Inverser un saut
jz  -> jnz   (74 -> 75)
# Forcer un saut
jz  -> jmp   (74 -> EB)
# Neutraliser des instructions
... -> NOP   (90)
# Forcer un retour 'vrai'
mov eax,1 ; ret   (B8 01 00 00 00 C3)

Outils

# Ghidra : Patch Instruction / Patch Bytes -> Export
# Radare2 en mode write
r2 -w binaire ; s 0x4011 a ; wa jmp 0x4020
# Edition hexa directe
xxd binaire | grep ... ; puis hexedit