KeygenMe01 - C++

Iniciado por jEUDi17, 19 Julio 2012, 09:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Tinkipinki

#10
Hola a todos:
La solució esta una vez desempackado en:
0040160E  |.  3B45 88       CMP EAX,DWORD PTR SS:[EBP-78]  

Si cogeis el resultado de la comparacion que se encuentra en EAX  y la convertis a decimal os dara el serial correcto para el name que habeis entrado.

Seria muy interesante poder hacer un keygen  o que alguien explicara la rutina del calculo y asi profundizar un poco mas.
Si alguien tiene dudas de como llegar hasta aquí, que no dude en preguntar.

Agradecer a  jEUDi17 por compartir su trabajo... ;-)

Saludos

jEUDi17

Cita de: karmany en 19 Julio 2012, 19:57 PM
jEUDi17

Muchísimas gracias por tu keygenMe01 y bienvenido.

Para los usuarios que se inician, es recomendable que le echéis un vistazo, por ejemplo, cómo saber llegar al OEP en un sencillo AsPack.

Yo creo que no deberías publicar el código fuente, porque si no quitas "la gracia" de lo que es un CrackMe. En todo caso cuando sea resuelto, se haga un tutorial... más adelante

Gracias
Un saludo
Cita de: karmany en 19 Julio 2012, 19:57 PM
jEUDi17

Muchísimas gracias por tu keygenMe01 y bienvenido.

Para los usuarios que se inician, es recomendable que le echéis un vistazo, por ejemplo, cómo saber llegar al OEP en un sencillo AsPack.

Yo creo que no deberías publicar el código fuente, porque si no quitas "la gracia" de lo que es un CrackMe. En todo caso cuando sea resuelto, se haga un tutorial... más adelante

Gracias
Un saludo

Gracias a los 2 por comentar, no voi a dar el codigo fuente, despues lo posteare.

Saludos a los 2 y buen día.

Tinkipinki buen trabajo (: y gracias por resolverlo.
En paz me acostaré y asimismo dormiré; Porque sólo tú, Señor, me haces vivir confiado.


jEUDi17

Cita de: Stakewinner00 en 19 Julio 2012, 10:06 AM
Hay tutoriales muy buenos por internet.

en este link hay un tutorial muy bueno

http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/

Gracias por comentar, ese es el problema nose porque no puedo aprender lo que explica allí.

Buen dia (:
En paz me acostaré y asimismo dormiré; Porque sólo tú, Señor, me haces vivir confiado.


Stakewinner00

Cita de: jEUDi17 en 19 Julio 2012, 21:02 PM
Gracias por comentar, ese es el problema nose porque no puedo aprender lo que explica allí.

Buen dia (:

Bueno tengo 15 años y cuando me puse a intentar a aprender cracking tampoco podi aespere como 2 messes y despues ya me fue todo mejor.

Quizas es que aun no lo entiendes y te falta madurar un tiempo para entenderlo todo con facilidad?

En todo caso lo k yo haria seria irme a otro lado durante un tiempo y luego regresaria para ver sy ya puedo aprenderlo.

Nose si se ha entendido mucho  :P

Puntoinfinito

Pásamelo por MP por favor...   :-X
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

jEUDi17

Cita de: puntoinfinito en 19 Julio 2012, 23:00 PM
Pásamelo por MP por favor...   :-X

No puedo amigo, intenta resolverlo y sacar el keygen tu mismo.

Espero que no te molestes.
En paz me acostaré y asimismo dormiré; Porque sólo tú, Señor, me haces vivir confiado.


MCKSys Argentina

MCKSys
353
:P

PD: Si hago tiempo, sale keygen...
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jEUDi17

#17
Cita de: MCKSys Argentina en 19 Julio 2012, 23:47 PM
MCKSys
353
:P

PD: Si hago tiempo, sale keygen...

de maravilla funciona, gracias por resolverlo.

Espero el keygen!
En paz me acostaré y asimismo dormiré; Porque sólo tú, Señor, me haces vivir confiado.


MCKSys Argentina

La comprobacion del serial esta mal. Si ingresas un UserName de 3 caracteres (por ej. abc), el calculo se hace en forma incorrecta.

En esta parte:


00401579    C745 84 00000000        MOV DWORD PTR SS:[EBP-7C],0
00401580    8B45 84                 /MOV EAX,DWORD PTR SS:[EBP-7C]
00401583    3B45 9C                 |CMP EAX,DWORD PTR SS:[EBP-64]
00401586    7D 27                   |JGE SHORT KeygenMe.004015AF
00401588    8D45 F8                 |LEA EAX,DWORD PTR SS:[EBP-8]
0040158B    0345 84                 |ADD EAX,DWORD PTR SS:[EBP-7C]
0040158E    83E8 10                 |SUB EAX,10
00401591    0FBE10                  |MOVSX EDX,BYTE PTR DS:[EAX]
00401594    8D45 F8                 |LEA EAX,DWORD PTR SS:[EBP-8]
00401597    0345 84                 |ADD EAX,DWORD PTR SS:[EBP-7C]
0040159A    83E8 0E                 |SUB EAX,0E
0040159D    0FBE00                  |MOVSX EAX,BYTE PTR DS:[EAX]
004015A0    31D0                    |XOR EAX,EDX
004015A2    83C0 09                 |ADD EAX,9
004015A5    8945 94                 |MOV DWORD PTR SS:[EBP-6C],EAX
004015A8    8D45 84                 |LEA EAX,DWORD PTR SS:[EBP-7C]
004015AB    FF00                    |INC DWORD PTR DS:[EAX]
004015AD  ^ EB D1                   \JMP SHORT KeygenMe.00401580


Aqui se calcula un DWORD que despues sera usado para XORear.

En resumen, despues de ejecutar el bucle, lo que hace esto es:

xordw2 = (username[2] xor username[4]) + 9

Como ven, si el Username tiene 3 chars, entonces username[4] lee un byte de afuera del string.

En resumen, el serial se calcularia asi:

xordw1 = username[3] + 02Dh
xordw2 = (username[3] xor username[5]) + 9
xordw3 = (xordw2 xor xordw1) + 7
xordw4 = (xordw3 xor xordw2) + 019h

serial = xordw3 + xordw4 + 02Dh

Pero bueno, calculo que se podria hacer un keygen para Usernames ede largo 4 a 10...  ;D

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jEUDi17

Cita de: MCKSys Argentina en 20 Julio 2012, 02:02 AM
La comprobacion del serial esta mal. Si ingresas un UserName de 3 caracteres (por ej. abc), el calculo se hace en forma incorrecta.

En esta parte:


00401579    C745 84 00000000        MOV DWORD PTR SS:[EBP-7C],0
00401580    8B45 84                 /MOV EAX,DWORD PTR SS:[EBP-7C]
00401583    3B45 9C                 |CMP EAX,DWORD PTR SS:[EBP-64]
00401586    7D 27                   |JGE SHORT KeygenMe.004015AF
00401588    8D45 F8                 |LEA EAX,DWORD PTR SS:[EBP-8]
0040158B    0345 84                 |ADD EAX,DWORD PTR SS:[EBP-7C]
0040158E    83E8 10                 |SUB EAX,10
00401591    0FBE10                  |MOVSX EDX,BYTE PTR DS:[EAX]
00401594    8D45 F8                 |LEA EAX,DWORD PTR SS:[EBP-8]
00401597    0345 84                 |ADD EAX,DWORD PTR SS:[EBP-7C]
0040159A    83E8 0E                 |SUB EAX,0E
0040159D    0FBE00                  |MOVSX EAX,BYTE PTR DS:[EAX]
004015A0    31D0                    |XOR EAX,EDX
004015A2    83C0 09                 |ADD EAX,9
004015A5    8945 94                 |MOV DWORD PTR SS:[EBP-6C],EAX
004015A8    8D45 84                 |LEA EAX,DWORD PTR SS:[EBP-7C]
004015AB    FF00                    |INC DWORD PTR DS:[EAX]
004015AD  ^ EB D1                   \JMP SHORT KeygenMe.00401580


Aqui se calcula un DWORD que despues sera usado para XORear.

En resumen, despues de ejecutar el bucle, lo que hace esto es:

xordw2 = (username[2] xor username[4]) + 9

Como ven, si el Username tiene 3 chars, entonces username[4] lee un byte de afuera del string.

En resumen, el serial se calcularia asi:

xordw1 = username[3] + 02Dh
xordw2 = (username[3] xor username[5]) + 9
xordw3 = (xordw2 xor xordw1) + 7
xordw4 = (xordw3 xor xordw2) + 019h

serial = xordw3 + xordw4 + 02Dh

Pero bueno, calculo que se podria hacer un keygen para Usernames ede largo 4 a 10...  ;D

Saludos!

Disculpa, no me fije en eso, cuando estaba haciendo el programa me fije mas que el programa genere un key para cada nombre, que fijarme en los errores que habia para el nombre de 3 caracteres.

Intentaré ver como se soluciona eso, gracias por la aclaración y saludos.

MCKSys Argentina gracias por tormarte el tiempo en analizar.
En paz me acostaré y asimismo dormiré; Porque sólo tú, Señor, me haces vivir confiado.