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

Ser-Me do megadoctor (I-1)

Qua

23

Ago

2006


11:24

(11 votos, média 4.55 de 5) 


Este desafio do megadoctor vai-nos ensinar a mexer com mais algumas ferramentas, em especial o DeDe e um editor de recursos. Prepare seus dois neurônios de plantão (os famosos Tico e Teco) e mãos à obra!

O programa

O alvo foi escrito pelo megadoctor em Delphi para a plataforma Windows. Está disponível para download em downloads > informática > crackme > crackme para iniciantes.

Ser-Me
Janela do Ser-Me

Objetivo do desafio

O autor pede para:

  1. Habilitar o botão [Register]
  2. Eliminar o recadinho pentelho
  3. Fazer com que o programa aceite qualquer serial
  4. Criar uma mensagem que diga 'Serial correto' (Right Serial)
  5. Remover a mensagem de erro que diz 'Serial errado' (Wrong Serial)

Analisando o programa

Ao ser executado, o programa Ser-Me.exe apresenta uma janelinha com duas caixas de texto identificadas por Login e Serial, além dos botões [Register], [Help] e [Exit]. A primeira coisa que chama atenção é que o botão [Register] está desabilitado. Quando clicamos o botão [Help], recebemos as instruções do que é preciso fazer e, claro, quando clicamos em [Exit] encerramos o aplicativo... e isto é tudo.

Planejando o ataque

É óbvio que, se o botão [Register] estiver desabilitado, não será possível fazer qualquer tipo de registro. Ao que tudo indica, a primeira providência será habilitar este botão. Uma vez habilitado, parece que teremos uma surpresa porque o desafio lançado pelo autor inclui a eliminação de uma mensagenzinha indesejada. Além disso, ele pede que o programa aceite qualquer serial como sendo correto e isto cheira a mexida no código. Se o recado indesejado e esta eventual alteração no código (patch) não tiverem relação, então a ordem das tarefas não tem importância. O mesmo pode ser dito para as mensagens 'Serial correto' e 'Serial errado'. Então, toca encarar o bicho smile

As ferramentas

  • PEid: apenas pela mania que tenho de conferir as informações fornecidas pelo autor e porque este identificador de PE possui um plugin que quebra um galhão - um editor de recursos. Tanto o XN Resource Editor quanto o PEiD podem ser baixados em downloads > informática > utilitários.
  • DeDe: um decompilador para Delphi. Está em downloads > informatica > compiladores/decompiladores. O programa é muito antigo e dá umas estriladas com o Windows XP, mas, mesmo assim, ainda é muuuuito útil.
  • OllyDbg: o debugador mais fácil de se lidar que conheço.

PILOTANDO O MOUSE

Antes de mais nada, instale o plugin XN Resource Editor. Basta abrir o arquivo XNResourceEditor_Plugin.zip na pasta plugins do PEiD. Quando o identificador de PE for inicializado, ele incorpora automaticamente o novo plugin.

XN Resource Editor
Fig.1 - Janela do XN Resource Editor / Botão Register

Por medida de segurança, faça uma cópia do executável original. Depois rode o PEiD e chame o executável Ser-Me.exe. Constatamos que o programa realmente foi escrito em Borland Delphi 6.0 e que as seções do PE estão todas presentes e inalteradas. Chegou a hora de usar o editor de recursos para conferir se o botão [Register] é "mexível".

Clique no botão [->] do canto inferior direito, escolha plugins e o XN Resource Editor. Isto faz com que a janela do editor de recursos seja apresentada. Clique no item de menu File, escolha Open, selecione o executável Ser-Me.exe e as diversas áreas do editor são atualizadas de acordo com os dados encontrados. No painel esquerdo, dê um duplo clique em RC Data, outro duplo clique em TFORM1 e um clique em Language Neutral. Role um pouco o painel direito para cima até encontrar a referência ao botão Register, conforme mostrado na fig.1.

Observe que o objeto Button1:TButton possui várias propriedades, entre elas a propriedade Enabled = False. AHÁ!!! Basta trocar esta propriedade por Enabled = True. Só de bagunça, troque também Caption = 'Register' por Caption = 'Registrar'. Logo no início, procure o objeto Form1 e passe a propriedade Caption para Caption = 'Ser-Me'. Aproveite e troque as Captions dos botões Button2 e Button3 para 'Ajuda' e 'Sair'. Mexa no que quiser e depois salve o arquivo. Feche o editor de recursos, rode novamente o Ser-Me.exe e o que é que os seus olhos vêem? Todas as mudanças efetuadas e o botão [Registrar] (deixou de ser Register) habilitado. Tudo o que a gente queria :thumbup:

Informações adicionais