Anti-analysebeginner
IsDebuggerPresent
Un appel d'API Windows qui lit le drapeau BeingDebugged dans le PEB pour détecter un débogueur en mode utilisateur attaché au processus courant.
IsDebuggerPresent est la vérification anti-débogage la plus simple sous
Windows. Elle lit un seul octet — le drapeau BeingDebugged — dans le Process
Environment Block (PEB) du processus appelant et renvoie une valeur non nulle
lorsqu'un débogueur en mode utilisateur est attaché.
Fonctionnement
La fonction se résume à la lecture de PEB.BeingDebugged (offset 0x02). Le
noyau positionne ce drapeau quand un processus est créé sous un débogueur, ou
lorsqu'un débogueur s'attache par la suite.
mov eax, fs:[30h] ; PEB
movzx eax, byte [eax+2] ; PEB.BeingDebugged
test eax, eax
jne debugger_detectedDétection & contournement
- Patcher le drapeau PEB : mettre
BeingDebuggedà0depuis le débogueur avant l'exécution de la vérification (x64dbg :Command → SetPEB). - Hooker l'API : intercepter
kernel32!IsDebuggerPresentet forcer le retour à0. - ScyllaHide / TitanHide automatisent le masquage du drapeau PEB.
Votes