
Create Anti-Copy DRM Malware
Este repositório usa uma técnica para modificar a Tabela de Endereços de Importação (IAT) de um programa, substituindo os nomes das funções importadas pelos seus ordinais correspondentes, resultando em um binário que importa funções exclusivamente por ordinais.
Essa técnica reduz as chances de o binário ser analisado com sucesso por sistemas de sandbox devido à incompatibilidade nos valores ordinais nos diferentes sistemas. Esse contraste faz com que o Windows Loader não consiga localizar o endereço correto da função ou recupere uma função incorreta, fazendo com que o binário seja corrompido no ambiente de sandbox. Por fim, essa técnica torna mais desafiador fazer engenharia reversa do binário.
Este repositório inclui dois projetos:
Lê um arquivo PE do disco e substitui as funções importadas por nome pelos seus valores ordinais. O programa gerado só será executado em um sistema onde as funções importadas tenham os mesmos valores ordinais que o sistema que o gerou.
TechTestBuilder.exe para gerar mimikatzDRM.exe, que é o mimikatz.exe, mas com funções importadas por ordinais.

mimikatzDRM.exe em um sistema diferente do usado para gerá-lo exibirá o seguinte erro.

Este projeto utiliza a técnica de DRM em si mesmo quando é executado pela primeira vez. Isso significa que esse binário não pode ser executado em outras máquinas com tanta facilidade. OrdinalDRMBin.exe aplica os seguintes passos:
Verifica se o programa local possui alguma função importada por nome; se não, ele ignorará a aplicação do patch na IAT.
Lê a si mesmo do disco e converte todas as funções importadas por nome para serem importadas por ordinais.
Apaga a si mesmo do disco.
Grava a nova imagem onde todas as funções são importadas por ordinal.
OrdinalDRMBin.exe sem ter sido executado. Observe que as funções são importadas por nome.

OrdinalDRMBin.exe após ter sido executado. Observe que agora as funções são importadas por seus ordinais.

Como mencionado, sistemas com os valores ordinais exatos para todas as funções importadas da implementação gerada poderão executar o binário protegido. No entanto, as chances de isso acontecer podem ser reduzidas importando funções de DLLs diferentes. A mesma abordagem usada no módulo IAT Camouflage pode ser usada para esse fim.