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) 


O primeiro desafio do Pilotando o rato é dedicado aos iniciantes da ER, por isto mesmo vem cheio de dicas e com algumas sugestões de como resolvê-lo.

O programa

O crackme se encontra disponível para download na seção downloads > informática > crackme > crackme para iniciantes. Foi escrito em Delphi 7 para a plataforma Windows e publicado por Jules em Outubro de 2004. Apenas para diminuir o tamanho do programa, o autor resolveu encolhê-lo usando UPX. Estas informações estão no arquivo rbx.nfo que acompanha o pacote.

Objetivo do desafio

Digitar um nome e um número de série que seja aceito.

Analisando o programa

Quando o número de série não bate com o nome fornecido, nada acontece. Nem mesmo uma mensagenzinha de erro sad Isto dificulta um pouco as coisas, pois não temos nenhuma string à qual podemos nos apegar.

Planejando o ataque

Sempre é bom confirmar as informações fornecidas pelo autor e, a primeira coisa a fazer é determinar se o executável realmente foi empacotado pelo UPX. Caso isto se confirme, temos que desempacotar o Rebelx. Uma vez aberto, toca procurar algum ponto de apoio para poder começar e, geralmente, a procura de strings acaba revelando um caminho a seguir.

As ferramentas

Tenho algumas sugestões (todas as ferramentas encontram-se disponíveis para download):

  1. PEid - este identificador de PE é ótimo para confirmar se o programinha está mesmo compactado com UPX. Pode ser usado para descompactar o programa (livrá-lo do UPX), procurar strings e dar uma olhada no código desassemblado. Procure em downloads > informática > utilitários.
  2. GUiPeX - excelente para descompactar (tirar o UPX) de uma forma bem "limpa". Procure em downloads > informática > compactadores.
  3. OllyDbg - o debugger para rodar o programa e entender o código desassemblado. Procure em downloads > informática > debuggers.

PILOTANDO O MOUSE

Lá vamos nós! Rode o PEid, clique no botão [...] superior direito e carregue o executável que está na mira. Você deve obter o seguinte resultado:

PEid com Rebelx
PEid com Rebelx carregado

Vamos por partes: em primeiro lugar, dê uma olhada na área de texto logo acima dos botões inferiores - o recado nos diz "UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo". Noooossa, o Jules não enganou ninguém. Não é que o Rebelx está mesmo UPXzado! A vontade é logo partir para a etapa seguinte, mas, antes disto, dê uma olhadinha mais caprichada. Na ER toda e qualquer informação é preciosa e o piloto do rato deve ter a paciência de ir colecionando todas as particularidade que encontrar pelo caminho. Ah, e também anotar tudo, porque nunca se sabe...

Pois bem, clicando no botão à direita de EP Section, podemos verificar que as seções do executável são UPX0, UPX1 e .rsrc. Tudo indica que não é nenhuma enganação, o Rebelx realmente foi empacotado do modo mais tradicional possível com o UPX.

Desempacotando o Rebelx - capítulo I

O UPX é tão feijão com arroz que o PEid consegue descompactá-lo sem problema. Só para ver como funciona o plugin de desempacotamento genérico, clique no botão [->] no canto inferior direito, escolha Plugins e PEiD Generic Unpacker. Depois clique no botão [->] à direita de OEP Detected para encontrar o ponto de entrada do executável e, a seguir, no botão [Unpack]. Isto é tudo. Na mesma pasta onde você colocou o executável que está sendo analisado (Rebelx crackme 3.exe) você vai encontrar o Rebelx crackme 3.exe.unpacked_.exe. Observe que o arquivo original possui 161 Kb e que o arquivo descompactado mostra 448 Kb. É isso aí!

Melhor continuar explorando o que o PEid ainda pode nos oferecer. Clique novamente no botão [...] do canto superior direito e, desta vez, carregue o arquivo descompactado. Xiiiiii, continua dizendo que tem seções UPX. Só que, desta vez, se você clicar no botão [>] ao lado de EP Section, as seções mostradas serão UPX0, UPX1, .rsrc e .snaker. Além disso, a diferença no tamanho... não custa tentar.

Informações adicionais