Por Roberto Alexis Farah

 

Alguns anos atrás precisei depurar uma aplicação sem símbolos ou código fonte. Para piorar a situação, descobri que o executável tinha algum tipo de proteção anti-depurador.

 

Depois de analisar a listagem disassemblada usando DumpBin, descobri o truque. A aplicação usava IsDebuggerPresent() e, além disso, chamadas assembly adicionais para checar a existência do depurador.

 

Nesse caso, fiz o depurador trabalhar mudando a aplicação na memória depois de conectar o depurador a ela.

Então, algum tempo mais tarde decidi criar esse simples script “só por diversão” que desabilita IsDebuggerPresent().

 

Basta conectar o depurador na aplicação usando IsDebuggerPresent() e rodar o script usando “g” para continuar a execução.

 

Eis imagens e código fonte:

 

Debugging Toolbox.