Questão:
O que essa sequência de instruções de montagem poderia significar?
PSS
2013-06-02 08:08:42 UTC
view on stackexchange narkive permalink

Recentemente, encontrei a seguinte sequência de instruções de montagem.

  call ds: WSAStartuppush ecxpush edimov ecx, 69E65AC4hmov edi, 2776452Ahpop edipop ecxjmp short loc_ABCD  

Por favor, ajude-me a entender estas 4 instruções específicas abaixo:

  mov ecx, 69E65AC4hmov edi, 2776452Ahpop edipop ecx  

Por que você moveria valores diretos para os registradores, apenas para sobrescrevê-los com as próximas 2 instruções?

ADICIONADO: Em relação aos comentários de Rolf Rolles e Peter Ferrie abaixo. Em primeiro lugar, obrigado, pessoal, por sua contribuição. Eu realmente gostei disso. O que mais me intriga e parece relativamente interessante é o fato de que o executável em questão parece estar limpo e livre de ofuscação de código de qualquer tipo. Quão relevante é uma quantidade tão pequena de ofuscação para fins de derrota AV? Eu diria que não é muito relevante.

Também descobri a postagem aqui no RE Qual é o propósito de 'mov edi, edi'? . O usuário RE QAZ na resposta aceita mencionou algo sobre o suporte de hot patching em tempo de execução. Poderia ser algo nesse sentido?

Oi. Você poderia postar o hash do arquivo? Eu gostaria de verificar a ofuscação. Obrigado.
@alexanderh. Posso não estar entendendo algo aqui, mas como o hash do arquivo pode permitir que você verifique se há ofuscação? Obrigado.
porque posso usar o hash para localizar o executável.
Com relação ao seu adendo: não, esse código não foi inserido para fins de hot-patching.
Um responda:
Rolf Rolles
2013-06-02 08:36:32 UTC
view on stackexchange narkive permalink

Sem mais informações, parece ofuscação deliberada: instruções sem efeito final inseridas no código para torná-lo mais difícil de ler. Duvido que o código tenha sido gerado por um compilador.

Eu pensei sobre isso também. Mas está alinhado após as instruções normais de "compreensão total". Eu nem mesmo vejo isso sendo útil para propósitos de ofuscação. 4 instruções dentro perfeitamente fáceis de preparar e acompanhar a montagem. Totalmente estranho :)
Poste um pouco mais do contexto, então; mais algumas instruções antes e depois.
Atualizada. Chama WSStartup e pula logo depois. Nada extraordinário.
Parece definitivamente ofuscação. O compilador é muito bom na eliminação de códigos inúteis como esse (por meio de análise de vivacidade não baseada em memória, uma das análises de fluxo de dados globais mais antigas e simples), então duvido que o código seria gerado por um compilador, exceto talvez com otimizações desativadas ( e mesmo assim sou cético, uma vez que os valores não são usados ​​em nenhum cálculo).
é usado para tentar anular assinaturas de AV, inserindo instruções inúteis que, de outra forma, permitiriam uma correspondência com a chamada.
Pode ser um mecanismo anti-AV, mas a ofuscação tem muitos propósitos no reino da anti-compreensão também. Pode até ser ambos.


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...