No dia 19 de Janeiro, o usuário cha5126568 abriu uma issue no github do famoso x64dbg e relatou que a última versão do packer Themida não estava sendo detectada pelo debugger, podendo resultar na execução com sucesso de um software malicioso, por exemplo. Além de relatar o ocorrido o usuário também deixou sua análise e possíveis resoluções para se evitar o bypass:
Para quem não está familiarizado o ScyllaHide é um plugin do x64dbg de código aberto. Este plugin tem como objetivo impedir que técnicas de Anti-Debugging, frequentemente utilizadas não só por softwares maliciosos mas também por programas legítimos como Anti-Cheat de jogos, sejam executadas corretamente.
O problema relatado foi o fato da última versão do Themida estar utilizando as funções GetForegroundWindow/NtUserGetForegroundWindow e depois GetWindowText/InternalGetWindowText à fim de descobrir o nome da janela do sistema sendo utilizada no momento da execução (neste caso, a janela do debugger em si), fazendo com que o packer identificasse o debugger e parasse de executar.
Após alguns dias de discussão o usuário Mattiwatti, um dos principais desenvolvedores do plugin ScyllaHide, trouxe uma resolução para o problema relatado na issue. A solução encontrada foi fazer um hooking da função NtUserGetForegroundWindow, impedindo que a checagem do packer seja feita. Por mais que a correção tenha foco em Windows 10 ela se aplica muito bem à sistemas mais antigos, sem falar que o hook só funciona caso a janela retornada pela chamada da função retorne a janela de um debugger, garantindo maior precisão na execução.
Para quem estiver interessado no código em si vale dar uma olhada no commit referente à esta nova release.
Comentários Recomendados
Não há comentários para mostrar.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.