¿Por qué este código me permite detectar un depurador?

¿Por qué el siguiente código de ensamblaje es una herramienta anti-depuración?

<code>l1:
call l3
l2:
;some code
l3:
mov al, 0c3h
mov edi, offset l3
or ecx, -1
rep stosb
</code>

Yo sé esoC3h esRETN y yo sé questobs escribe el valor enal como opcode de acuerdo con el desplazamiento enedi y esta hecho paraecx veces debido arep.

También soy consciente del hecho de questobs ystosw se ejecutará si fueron pre-buscados en la arquitectura Intel como su formato original.

Si ejecutamos el programa en modo depurado, la búsqueda previa es irrelevante y la etiqueta l2 se ejecutará (porque es de un solo paso); de lo contrario, si no hay un depurador, habrá ping-pong entre l1 y l3 ¿Estoy en lo cierto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta