[Windbg Script] Desabilitando IsDebuggerPresent()


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.

Comments (0)