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.
Recommended Comments
There are no comments to display.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.