Virus descobrir a véu: a tecnologia de auto-decifrando códigos maliciosos

Ao analisar o vírus, muitas vezes nos deparamos com um fenômeno muito estranho, usando a ferramenta de busca para ver um caso de exemplo packers obviamente não, mas quando descompilar ou depuração, mas não pode ver as amostras maliciosos intuitivamente, é por isso? Muito simples, porque o atacante usa um métodos de criptografia personalizado para alcançar a verdadeira, não a análise lógica natural de auto-decifrando e executar ações maliciosas no tempo da amostra prazo, assim que veja única amostra não descriptografar a forma de código malicioso .

A técnica seguinte para bisbilhotar o código malicioso a partir dele para descodificada a título de exemplo, o seguinte é um vírus Ammyy downloader (MD5: 28EAE907EA38B050CBDCC82BB623C00A), usando uma investigação shell DIE descobriu que a amostra não adicionar qualquer shell.

No entanto, quando a cadeia de pesquisa, mas não conseguiu encontrar algumas cordas suspeitos (como download é muitas vezes URL maliciosa), para ver apenas um monte de rabiscos, ao que parece, a amostra é mais propensos a usar a técnica de auto-decifrando .

Decompile da amostra, é difícil ver a sua lógica de código, muito Chamada de endereço dinâmico.

Para este exemplo, decompiler é difícil ver algumas operações importantes, porque a maioria deles são a operação de decodificação, portanto, apenas um único passo através do depurador. Pisando nada boas habilidades, experiência fugitivo chamar em um ponto de interrupção e, em seguida, re-comissionamento. Depuração, prestar atenção a VirtualAlloc, GlobalAlloc, HeapCreate essas funções, porque o código malicioso é geralmente um período de espaço de memória do aplicativo para armazenar a descriptografia fora código malicioso usando essas funções. Abaixo, o exemplo cria uma chamada é 0 × 230000 HeapCreate essa memória.

Seguido pelo código je malicioso + maneira cíclica retn para desencriptar os dados a 0230000 ×.

Após a conclusão da descriptografia, o código malicioso chama o fluxo de execução da chamada ESI 0x40XXXX a 0 × 230000.

No entanto, o código 0 × 230000 não é realizada no núcleo de ações maliciosas que visam 0x40XXXX modificado código fonte. Abaixo, ele irá chamar a 0 × 400000 VirtualProtect atributo memória para RW (leitura e escrita), e modificar ainda mais o código original.

0 × 400000 segmento de memória atributo modificado como segue.

Acabar modificar o código para chamar jmp ESI salto para trás 0x40XXXX ser realizada neste momento, este código de memória foi modificado, e, finalmente, começaram a realizar ações maliciosas do núcleo.

Eu descobri o despejo de memória, e códigos maliciosos agora o código já é descriptografado, a lógica do programa é claramente visível, você pode encontrar vírus url para ser baixado através da busca string.

Até agora, a funcionalidade downloader foi analisada, a principal função é fazer o download e vírus Ammyy executado a partir de

Assim, concluiu-se que, a partir da etapa de decodificação de códigos maliciosos é geralmente os cinco passos seguintes: Memória Aplicação - >  A replicação de dados - >  dados Decrypt - >  Ir para execução monte de código malicioso - >  Ir para trás e modificar o código-fonte. No entanto, podemos ter uma dúvida, porque o vírus não é diretamente sobre a implementação pilha do núcleo de ações maliciosas de TI, mas também para descriptografar a implementação do núcleo de código malicioso 0 × 400000 espaço, modificando o código original. Isso ocorre porque alguns dos mais altos da caixa de areia, matança de criação de vírus software monitora grande espaço de memória, em seguida, solte uma vez que o código de descriptografia será imediatamente sandbox, macio matar é detectada, é geralmente no código de pilha não só dirigir o núcleo de ações maliciosas.

Desde a compreensão das técnicas de decodificação de códigos maliciosos, dê uma olhada recente Popular vírus GandCrab extorsão (MD5: 48A673157DA3940244CE0DFB3ECB58E9), é um tipo de tecnologia de auto-decifrando usado para atingir livre para matar. uso DIE de amostras para testes, não mostrou os embaladores.

Desde técnicas de decodificação mencionado acima, com semelhante, alguma aplicação espaço de memória 0 × 1280000.

código Stack é responsável por modificar o código original e saltar para trás executado.

Após a volta salto, o código 0 × 403016 está no núcleo do código malicioso decifrada, então você pode depurar código malicioso GandCrab.

O despejo de memória para baixo lógica de código pode analisar o arquivo criptografado.

Consulta o vírus em VT relatados casos de drogas, apenas cerca de metade do motor de droga, mas o tipo de vírus mais relatada não pode ser localizado para Ransom, ao que parece, GandCrab desta forma auto-decifrando ou jogado um certo efeito para matar evitar .

* Autor: laboratório de segurança Clarividência profundamente convencido, reproduzido a partir FreeBuf.COM

Para cozinhar um grande problema Qitaihe treze mil habitantes gasoduto parou por um ano
Anterior
Jiangsu Qidong: veredicto aberto com casos mal crime
Próximo