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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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

Desconectado Desconectado

Mensajes: 242



Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #10 en: 19 Julio 2012, 20:39 pm »

Hola a todos:
La solució esta una vez desempackado en:
Código:
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
« Última modificación: 19 Julio 2012, 20:42 pm por Tinkipinki » En línea

jEUDi17

Desconectado Desconectado

Mensajes: 54


CrackSLatinoS


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #11 en: 19 Julio 2012, 20:54 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
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 línea

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

jEUDi17

Desconectado Desconectado

Mensajes: 54


CrackSLatinoS


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #12 en: 19 Julio 2012, 21:02 pm »

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 línea

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

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: KeygenMe01 - C++
« Respuesta #13 en: 19 Julio 2012, 21:05 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
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: KeygenMe01 - C++
« Respuesta #14 en: 19 Julio 2012, 23:00 pm »

Pásamelo por MP por favor...   :-X
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



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

Desconectado Desconectado

Mensajes: 54


CrackSLatinoS


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #15 en: 19 Julio 2012, 23:10 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 línea

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

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.987


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #16 en: 19 Julio 2012, 23:47 pm »

MCKSys
353
 :P

PD: Si hago tiempo, sale keygen...
En línea

MCKSys Argentina

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

jEUDi17

Desconectado Desconectado

Mensajes: 54


CrackSLatinoS


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #17 en: 20 Julio 2012, 00:16 am »

MCKSys
353
 :P

PD: Si hago tiempo, sale keygen...

de maravilla funciona, gracias por resolverlo.

Espero el keygen!
« Última modificación: 20 Julio 2012, 00:23 am por jEUDi17 » En línea

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

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.987


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #18 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:

Código:
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!
En línea

MCKSys Argentina

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

jEUDi17

Desconectado Desconectado

Mensajes: 54


CrackSLatinoS


Ver Perfil
Re: KeygenMe01 - C++
« Respuesta #19 en: 20 Julio 2012, 02:07 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:

Código:
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 línea

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

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

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