[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: