A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Oficina

Rebelx crackme três (I-1)

Seg

21

Ago

2006


17:03

(31 votos, média 4.77 de 5) 


Para nossa sorte, a string que estamos procurando ("Congratulations...") aparece logo de cara. Para posicionar o código na janela principal de modo que ele mostre a presença desta string, basta dar um duplo clique sobre a mesma.

Strings
Fig.2 - Janela com strings

De volta à janela principal, role o texto do código um pouco para baixo. Você vai reconhecer logo os quatro loops que fazem os cálculos XOR pois o OllyDbg nos faz a gentileza de destacar estes loops! Procure pela linha de código um pouco acima do primeiro loop, onde está a instrução XOR EAX, EAX (na minha execução, esta instrução está na posição 00453A81 - a posição que você encontra pode ser outra). Clique nesta linha para selecioná-la e em seguida clique na mesma linha com o botão direito do mouse para abrir um menu do qual você deve selecionar Breakpoint e depois Toggle. Pronto, você acaba de colocar um ponto de parada que fica destacado em vermelho (aliás, a tecla F2 faz o mesmo serviço - marcar e desmarcar breakpoints).

Breakpoint
Fig.3 - Breakpoint no OllyDbg (F2)

Observe que no canto inferior direito há uma área de texto destacada em amarelo que diz Paused. Isto quer dizer que preparamos tudo com o programa paradinho da silva... aliás, no canto inferior esquerdo a mensagem é Program entry point, ou seja, a execução está parada e o ponteiro está no ponto de entrada do programa. Muito bom, agora é só rodar o bicho. Clique no item de menu Debug e depois em Run (ou simplesmente F9, ou ainda na seta azul virada para a direita na barra de ferramentas) para dar início à festa.

Como resultado, a janela do Rebelx aparece na tela e a mensagem no canto inferior direito diz Running (executando). Clique na janela do Rebelx e digite ALDEIA na caixa de texto superior. Passe para a caixa de texto inferior e digite qualquer coisa. Logo depois do primeiro caracter digitado, a execução dispara e as instruções vão sendo executadas sem perdão até chegar o breakpoint que colocamos (veja que a mensagem Paused aparece assim que a execução pára). Agora é só ter calma, forçar uma execução passo a passo e prestar atenção nas mensagens e nos registradores.

A tecla de atalho para executar passo a passo é F7. Observe que o registrador EAX mostra o valor 6 e que, pressionando F7, a instrução XOR EAX, EAX é executada e o registrador mostra o valor zero. Mais um passo e o registrador EAX guarda o valor 6 (o comprimento do nome do usuário) depois de executar a instrução MOV AL,BYTE PTR DS:[456C04]. Continue repetindo F7 e observe como o valor em EAX vai diminuindo e como os caracteres da string ALDEIA na linha da instrução

00453A8C  |. BA 056C4500    MOV EDX,Rebelx_c.00456C05          ;  ASCII "ALDEIA"

vão sendo substituídos um a um em cada passada do loop até a string original ser transformada em UXPQ]U. O segundo loop, que faz um XOR 19, a string original é substituída por XU]\PX; o terceiro, do XOR 17, gera a string VSR[^V; o quarto loop (XOR 18) cria YT\JQY. Agora, é só concatenar as quatro strings para obter o serial para o usuário ALDEIA.

Obs: quando você encontrar uma instrução CALL pelo caminho e não quiser ser desviado para esta subrotina, use a tecla F8 (step over) ao invés da F7... e bom divertimento que por ora é só!

mfx brokerмаксидом сковорода грильлобановский александр компроматосновные организацийchinese translation englishстоимость ноутбука acerлобановский обыск

Informações adicionais