elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayudita con un craqueo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayudita con un craqueo  (Leído 2,465 veces)
xAnubiSx

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Ayudita con un craqueo
« en: 29 Octubre 2007, 20:12 pm »

hola gente, como estan ?

miren hace poco empeze a ver este tema del craking, y esta muy bueno... lei todos los tutoriales de la pagina, han salido todo re bien !

mi pregunta es:

intente ver si puedo crackear un software, el "1st smtp Server". lo cual lo hice a medias. esta echo en Delphi, no tiene protección.

[Edit] Pongo la url, por si quieren ver el programa. http://www.emailarms.com/products/1st_smtp.html [/Edit]

tiene una ventana de registro que aparece cada vez que arranco el programa y cada determinado tiempo se vuelve a abrir. lo que hice fue poder poner cualquier numero de registro y me lo tome como valido el tema es que cuando lo cierro y lo abro aparece y sigue apareciendo al transcurrir un determinado tiempo en ejecución.

que cosas tendria que ver, para poder crackearlo bien :D o conseguir un serial valido (que no lo pude encontrar :S )

salu2
« Última modificación: 29 Octubre 2007, 20:22 pm por xAnubiSx » En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Ayudita con un craqueo
« Respuesta #1 en: 30 Octubre 2007, 03:03 am »

El código es muy simple... tenes que simplemente buscar tu famoso mensaje ("invalid code"), subís un poco (la pantalla) y ves que hay un salto que desemboca ahí... te vas al salto, y ves que se compara un registro si es distinto de 0 (test bl,bl) pero antes se guarda en bl: eax (acumulador) y antes una llamada a una función... por lógica eax contendrá el valor de retorno de esa función, entonces es esa llamada la que hace el checkeo del serial, analizas el código de la función y hay varias comprobaciones... el tema es que si pones puntos de comprobación van a saltar a cada rato, porque le programa tiene un timer y cada cierta cantidad de tiempo vuelve a comparar la clave...
entonces seteás un breakpoint en la llamada a la función y cuando se detiene entras a debugearla y encontráis lo siguiente:

Código:
:004EC910 53                      push ebx
...
:004EC91E E82980F1FF              call 0040494C  <- longitud de clave
:004EC923 83F80E                  cmp eax, 0000000E <-tiene que ser igual a 14
...
:004EC92A 803830                  cmp byte ptr [eax], 30  <- primer dígito = 0
...
:004EC937 80780231                cmp byte ptr [eax+02], 31 <- 3º = 1
...
:004EC945 80780332                cmp byte ptr [eax+03], 32 <- 4º = 2
..
:004EC953 80780433                cmp byte ptr [eax+04], 33 <- 5º = 3
...
:004EC961 80780734                cmp byte ptr [eax+07], 34 <- 8º = 4
...
:004EC96F 80780839                cmp byte ptr [eax+08], 39 <- 9º = 9

:004EC97D 80780A35                cmp byte ptr [eax+0A], 35 <- 11º = 5
...
:004EC989 83FE07                  cmp esi, 00000007 <- coinciden todos??
:004EC98C 0F94C3                  sete bl <- serial válido
...
:004EC994 C3                      ret

un ejemplo de serial válido sería:  0X123XX49X5XXX

S2
En línea

xAnubiSx

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Ayudita con un craqueo
« Respuesta #2 en: 30 Octubre 2007, 18:57 pm »

muchas gracias por responder !
(estoy revisando el code)

Pregunta, que hace la función (test bl,bl).
el algoritmo que compara si el serial es valido, seria

cmp byte ptr [eax+02], 31

y si es asi, esa operación, como se explica el funcionamiento... :S ( estoy entendiendo de a poco, en la facu recien empezamos con assembler y me la vuela bastante... :D)

graicas !!!
« Última modificación: 30 Octubre 2007, 19:07 pm por xAnubiSx » En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Ayudita con un craqueo
« Respuesta #3 en: 30 Octubre 2007, 19:52 pm »

Pregunta, que hace la función (test bl,bl).

test x,y equivale a if(x&y), en el caso test bl,bl , se compara que bl sea distinto de 0 y se guarda el resultado en las banderas del procesador...

el algoritmo que compara si el serial es valido, seria

cmp byte ptr [eax+02], 31

en realidad son todos los

cmp byte ptr [eax+X], Y

y el

cmp esi, 00000007

y si es asi, esa operación, como se explica el funcionamiento... :S ( estoy entendiendo de a poco, en la facu recien empezamos con assembler y me la vuela bastante... :D)

el serial que coloques se almacena en el registro del acumulador (eax) y mediante los índices se puede ir recorriendo cada caracter:

key: hola

byte [eax]='h'
byte [eax+1]='o'
byte [eax+2]='l'
byte [eax+3]='a'

con:

cmp byte ptr [eax+X], Y

se compara cada uno de los caracteres con Y1,Y2,...,Yn
si son iguales se incremente el registro esi... y si:

cmp esi, 00000007 <- los siete carateres coinciden(fíjate que hay 7 comparaciones en el código)

sete bl <- serial válido

S2
En línea

xAnubiSx

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Ayudita con un craqueo
« Respuesta #4 en: 30 Octubre 2007, 20:10 pm »

La Verdad que mil gracias!!!

me esta gustando mas esto que programar en visual, o pascal (lo que me dan en la facu :D )

salu2

Offtopic: Buena tu pagina ! ya me registre :D


[Edit] de Casualidad como veo donde guarda la informacion de registro, porque quiero investigarlo un poco mas al programa, y desinstale. borre todo limpie el registro, pero sigue registrado :S [/edit]
« Última modificación: 30 Octubre 2007, 20:25 pm por xAnubiSx » En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Ayudita con un craqueo
« Respuesta #5 en: 31 Octubre 2007, 00:35 am »

[Edit] de Casualidad como veo donde guarda la informacion de registro, porque quiero investigarlo un poco mas al programa, y desinstale. borre todo limpie el registro, pero sigue registrado :S [/edit]

La verdad que ni idea... ya desinstale tb el programa, pero tendría que aparecer en las cadenas de texto que el programa utiliza... fijate ahí...

S2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines