Oficina
Rebelx crackme três (I-1)
Seg 21 Ago 2006 17:03 |
- Detalhes
- Categoria: Pilotando o rato I-1
- Atualização: Quarta, 15 Abril 2009 12:49
- Autor: vovó Vicki
- Acessos: 18096
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 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):
- 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.
- GUiPeX - excelente para descompactar (tirar o UPX) de uma forma bem "limpa". Procure em downloads > informática > compactadores.
- 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:
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.
- Anterior
- Próximo >>