Por que esse código me permite detectar um depurador?
Por que o seguinte código assembly é uma ferramenta anti-depuração?
<code>l1: call l3 l2: ;some code l3: mov al, 0c3h mov edi, offset l3 or ecx, -1 rep stosb </code>
Eu sei dissoC3h éRETN
e eu sei dissostobs
escreve o valor emal
como opcode de acordo com o deslocamento emedi
e isso é feito paraecx
vezes por causa derep
.
Eu também estou ciente do fato de questobs
estosw
será executado se eles foram pré-buscados na arquitetura intel como seu formato original.
Se executarmos o programa no modo de depuração, a pré-busca é irrelevante e o rótulo l2 será executado (porque é de etapa única), caso contrário, se não houver depurador, será pingue-pongue entre l1 e l3, certo?