Skip to content

Glossary

Patching

Modifying the bytes of a binary on disk or in memory to change its behavior — for example to bypass a license check or disable anti-debug code.

Patching is the act of modifying a binary's bytes — either in the file on disk or in live process memory — to alter its behavior. Common targets include license checks (replacing a conditional jump with an unconditional one), anti-debug routines, or hardcoded configuration values. The simplest patch replaces a JZ (0x74) with a JMP (0xEB) or fills instructions with NOP bytes (0x90). Patching on disk produces a persistently modified executable; patching in memory (via a debugger) is temporary. Automated patching scripts can apply multiple byte changes consistently across binary versions.

asm
; before: jump if license invalid
JZ  fail_label   ; 74 XX
; after: always jump past the check (patched)
JMP fail_label   ; EB XX