Autor
|
Tema: Ayudita con un craqueo (Leído 2,465 veces)
|
xAnubiSx
Desconectado
Mensajes: 28
|
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 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
|
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: :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
Mensajes: 28
|
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... ) graicas !!!
|
|
« Última modificación: 30 Octubre 2007, 19:07 pm por xAnubiSx »
|
En línea
|
|
|
|
Karman
|
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], Yy el cmp esi, 00000007y 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... ) 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
Mensajes: 28
|
La Verdad que mil gracias!!! me esta gustando mas esto que programar en visual, o pascal (lo que me dan en la facu ) salu2 Offtopic: Buena tu pagina ! ya me registre [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
|
[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
|
|
|
|
|
|