
Uma ferramenta automatizada de desempacotamento e correção de dump para Themida / Code Virtualizer / WinLicense (v3.0-v4)
Um desempacotador universal para binários protegidos com Themida e uma ferramenta de remoção de proteção em tempo de execução. O Unthemidator NÃO executa o binário, nem chama quaisquer APIs ou executa syscalls usadas pelos binários alvo na máquina hospedeira.
O Unthemidator funciona com todos os tipos de binários Windows (dll, exe, sys e outros) tanto em variantes x86 (32 bits) como x86_64 / amd64 (64 bits).
Após o desempacotamento, é realizada uma reconstrução completa do PE, tornando o binário desempacotado executável e depurável.
Além do desempacotamento e da reconstrução do PE, o Unthemidator consegue identificar a versão das máquinas virtuais Themida / Code Virtualizer usadas nos binários.
Basta arrastar e soltar um binário empacotado sobre o unthemidator ou usar o seguinte comando CLI no Windows:
unthemidator.exe [options] {path_to_bin.exe|.dll|.sys|.bin}
e o seguinte comando CLI num sistema baseado em Unix:
./unthemidator [options] {path_to_bin.exe|.dll|.sys|.bin}
Um PE só será considerado um driver de kernel se sua extensão de arquivo for .sys. Isso é feito para garantir o parsing correto de arquivos com quaisquer extensões como aplicações de usermode por padrão. Sem mencionar que drivers de kernel empacotados são extremamente raros e só podem ser executados em sistemas inseguros.
Abaixo está uma visão completa de todas as opções do unthemidator.
--out-file - nome / caminho do arquivo de saída. O padrão é {program_name}.unpacked.{program_extension}--license-file - nome / caminho do arquivo de licença. Necessário para o desempacotamento bem-sucedido de binários protegidos com WinLicense.--imports-file - nome (ou caminho) do arquivo onde salvar informações sobre imports. Deve ser JSON. O padrão é {program_name}.imports.json--vms-file - nome (ou caminho) do arquivo onde salvar informações sobre pontos de entrada de VM. Deve ser JSON. O padrão é {program_name}.vms.json--vm-depth - para pesquisa de máquina virtual e rastreamento de instruções virtuais, quantas camadas de virtualização devem ser executadas em single-step. O padrão é 0 - sem exploração de VM.--no-imp - pular a busca de imports--no-startup - pular o processamento de inicialização em runtime. Isso impedirá TODO o desempacotamento, exceto o estágio de boot inicial.--no-vm-lookup - pular a busca de máquina virtual--no-loader - pular a geração do loader anti-dump fixer. Isso pode tornar o binário não executável se o OEP for virtualizado ou se houver verificações de segurança por macroAlguns binários dependem de módulos personalizados fornecidos com o programa. Você pode simplesmente colocar todos os módulos personalizados
no diretório modules antes de desempacotar tais binários. O mesmo pode ser feito para módulos de sistema
ausentes, o que é útil se você estiver executando o unthemidator em um sistema Unix.
Se você tiver um problema ou algo não estiver funcionando como pretendido (ou não estiver funcionando de forma alguma), crie uma issue neste repositório.
Confira a página de Releases para encontrar o unthemidator pré-compilado. Atualmente, as seguintes variantes estão disponíveis:
Saiba mais sobre os internals da ofuscação do Themida, incluindo suas máquinas virtuais, nos seguintes artigos: