Oficina
KeygenMe #1 (I-2)
Dom 27 Ago 2006 17:46 |
- Detalhes
- Categoria: Pilotando o rato I-2
- Atualização: Terça, 02 Setembro 2008 19:11
- Autor: vovó Vicki
- Acessos: 13226
Este keygen-me é um bom desafio que exige algum conhecimento da linguagem Assembly e das funções da API do Windows.
O programa
O programa foi escrito por Boonz em Assembly para a plataforma Windows e não foi compactado. Publicado em 26 de Julho de 2006 pode ser encontrado no site crackmes.de. Você pode baixá-lo em downloads > informática > crackme > iniciantes, mas, antes de fazê-lo, saiba que o programa NÃO roda em versões anteriores ao Windows XP.
Objetivo do desafio
O objetivo é encontrar a forma como é obtido o serial e escrever um programa keygen que gere seriais corretos para qualquer nome.
Analisando o programa
O programa possui duas caixas de texto, uma para o nome e a outra para o serial. Deixando ambas vazias e clicando em [Check], recebemos o recado de que o nome precisa ter de 4 a 50 caracteres. Colocando qualquer coisa no nome e no serial, recebemos a mensagem Hello, Mr. Bad boy! - a não ser que, por inspiração divina, você consiga acertar na primeira
Planejando o ataque
Bem, se existe uma mensagem dizendo Hello, Mr. Bad boy! é provável que exista uma dizendo algo como Hello, Mr. Goodboy ou Congratulations!. É apenas um palpite, mas, quando não se tem nada, os palpites são a única coisa que nos resta.
Como o programa foi escrito em Assembly (basta conferir com o PEiD), o código costuma ser bem "limpinho". É de se esperar que exista uma rotina que calcule o serial de acordo com o nome fornecido... e é isto que vamos procurar.
As ferramentas
- Como sempre, o PEid vai ser usado para conferir a linguagem usada, as seções do executável e dar uma primeira sapeada no código. Você pode baixá-lo em downloads > informatica > utilitários.
- OllyDbg para rastrear a rotina que calcula o serial. Está à disposição em downloads > informática > debuggers.
- Qualquer linguagem de programação para criar o keygen - fica a seu critério. Dá até para usar a velha e boa JavaScript, com a qual apresentarei o keygen no final deste artigo.
PILOTANDO O MOUSE
Execute o PEid e carregue o executável: vem a confirmação, foi escrito em MASM32 / TASM32. Clique no botão [>] à direita de EP Section só para garantir que as seções são as usuais - .text, .rdata, .data e .rsrc. Agora, clique no botão [>] à direita de First Bytes para chamar o desassemblador. Role o texto um pouco para cima que logo você vai encontrar
00401323: 6817DC4000 PUSH 0040DC17 -> Hello, Mr. Bad boy! 00401328: 68F8DF4000 PUSH 0040DFF8 0040132D: E866000000 CALL 00401398 00401332: 83C408 ADD ESP, 00000008 00401335: 33C0 XOR EAX, EAX 00401337: C3 RET 00401338: 6803DC4000 PUSH 0040DC03 -> Hello, Mr. Goodboy! 0040133D: 68F8DF4000 PUSH 0040DFF8 00401342: E851000000 CALL 00401398 00401347: 83C408 ADD ESP, 00000008 0040134A: 33C0 XOR EAX, EAX 0040134C: C3 RET 0040134D: 6A28 PUSH 00000028 0040134F: 68F8DD4000 PUSH 0040DDF8 00401354: E821000000 CALL 0040137A 00401359: 6865DC4000 PUSH 0040DC65 -> Name must be 4 - 50 chars long! 0040135E: 68F8DF4000 PUSH 0040DFF8 00401363: E830000000 CALL 00401398 00401368: 83C408 ADD ESP, 00000008 0040136B: 33C0 XOR EAX, EAX 0040136D: C3 RET
Parece que está fácil. Vamos marcar o endereço 00401323 e apelar para o OllyDbg.
- Anterior
- Próximo >>