A ciência da engenharia reversa é algo que me fascinou, e que é quando você começar a entrar na questão de malware que acabam em engenharia reversa é inevitável. Também geralmente um tema que as pessoas às vezes vai um pouco perdido casos e não sabe por onde começar, mais você precisa saber linguagem assembly e nem todos estão dispostos, eu encontrei.
Quando eu comecei a olhar para o meu item no final achei melhor começar a aprender a linguagem assembly através de exercícios simples.
Antes de começar você quero agradecer ao meu Orozlan, por me ajudar todos os dias com as complexidades de malware e engenharia reversa.
No decorrer de hoje temos um programa que nos pede para inserir um serial. O programa vai verificar e nos dizer se é correto ou não. Então, nós vamos fazer é que o primeiro adesivo do programa em memória de modo que qualquer coisa que colocamos a nós como correta. E 2 de série encontrados dentro do programa.
OllyDbg precisa fazer isso, então baixá-lo aquí
Abrimos o programa que irá verificar o serial:
Nós colocamos uma série qualquer para ver como o programa se comporta, por exemplo 111111
temos o erro que mostra o programa.
Agora abra OllyDbg, e começou, se a primeira vez que você abrir OllyDbg, não se preocupe com as coisas que você não entende.
Quando abrimos OllyDbg buscar em primeiro lugar a mensagem de erro que saiu quando recebemos a série. Então olhe para todas as cadeias binárias.
Este nos devolverá os siguientes strings
Se você considerar as mensagens que dão a aplicação, podemos ver quando ele dá a mensagem que a série não é correto, e quando a mensagem de que está correto.
Agora o que fazemos é ir à festa, mas queremos que o código que estamos assistindo. Não há necessidade de compreender cada tempo de instrução.
Nós clique na linha que não, olhe a parte que mais interessado em:
Estas seriam as instruções mais básicas que nós vamos explicar um pouco para entender o que faz.
CALL: / Ir para o endereço / comando indicado
Push: Armazena o valor na pilha.
JMP: Ir para o endereço indicado.
Para começar com o que vamos fazer é corrigir o programa na memória para que nós colocamos o serial que nos colocou direito.
Então começamos:
Verificar o programa gostaria de fazer é, se a série é OK, ele mostra a mensagem de X. Se a série não é OK, mostra que outros.
Fácil ¿não?
Então o que vamos fazer é alterar a instrução que cuida disso.
Nós nos colocamos na posição 004010FF.
O que não vai mudar Ir JE se o seu oposto é saltos JNE igual, se não iguais
Nós vamos montar na posição antes de
Trocamos por
Para ser claro, isto só muda o endereço de memória, de modo que não mudará o binário original.
Mas vai ver o que fazemos, nós mudamos o valor e armazenar o binário.
Quando nos reunimos, vamos ler a
Agora, execute o programa para que você possa ver que aceita qualquer serial.
Então, pressione F9, executar o programa e entrar em qualquer série ….
UALA, temos o que queríamos.
Se você deseja salvar o binário, clique direito e fazer
Como fizemos uma mudança basta escolher a seleção. Para salvar nos salvar em arquivo e armazenar o binário
Uma vez que manter o binário, podemos executá-lo e digitar o que você nos dê OK em todos os casos
Uma vez salvo, você pode executar e testar
No próximo capítulo vai olhar para o binário serial.
Espero que tenha gostado.
Fonte:FluProject