Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: mr.blood en 27 Enero 2013, 19:24 pm



Título: [Keygenme] Litrico
Publicado por: mr.blood en 27 Enero 2013, 19:24 pm
Otro crackme.

Dificultad: [3/10] (Espero que asi sea jaja)
Lenguaje: FASM
Objetivo: Hacer un Keygen
Packer: No

[Crackme] Litrico (http://www.multiupload.nl/U0SFJTOVUL)

Espero que les guste. Para los mas desconfiados se que aqui tengo pocos mensajes, pero soy un usuario de fiar en otras comunidades. mr.blood (http://www.portalhacker.net/index.php?action=profile;u=243447)

Sa1uDoS


Título: Re: [Keygenme] Litrico
Publicado por: avesudra en 27 Enero 2013, 20:45 pm
No entiendo mr.blood siempre me sale bien xD ¿Estás seguro de que es ese? porque si no menudo keygenme me espera  :laugh:


Título: Re: [Keygenme] Litrico
Publicado por: mr.blood en 27 Enero 2013, 20:55 pm
Ok, luego lo subo, tuve alguna clase de problema jaja

En mi PC funcionaba perfecto pero mirando en otro me da siempre bien xD

Gracias por avisar avesudra.

Sa1uDoS


Título: Re: [Keygenme] Litrico
Publicado por: avesudra en 27 Enero 2013, 20:58 pm
Tengo Windows 8 por si te sirve o funciona en torno a eso, porque al cerrar el olly aparece esto:
(http://img685.imageshack.us/img685/3594/crackeme.jpg)


Título: Re: [Keygenme] Litrico
Publicado por: mr.blood en 27 Enero 2013, 22:04 pm
Prueba ahora a ver, a mi ya me funciona. Gracias, me has servido de mucho.

Era que habia subido otro .exe

Sa1uDoS


Título: Re: [Keygenme] Litrico
Publicado por: Høl¥ en 28 Enero 2013, 02:30 am

Ya te mandé el keygen, está bastante sencillito :P. Lo que más me costó fue
hacer el keygen, malditos punteros en C >.<.

Ah, una curiosidad. No controlas los límites de escritura en el buffer de usuario ni contraseña, así que si metes de usuario por ejemplo:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABien

Puedes conseguir que te muestre bien con cualquier serial, bueno incluso donde pone Bien poner el mensaje que uno quiere que muestre xD.

Exploit FTW  >:D



Título: Re: [Keygenme] Litrico
Publicado por: aixeiger en 28 Enero 2013, 05:09 am
Aqui posteo el keygen???


Título: Re: [Keygenme] Litrico
Publicado por: aixeiger en 28 Enero 2013, 05:12 am
ohh ya jeje ya lo mande igual


Título: Re: [Keygenme] Litrico
Publicado por: mr.blood en 28 Enero 2013, 15:57 pm
Los dos keygen estan bien. Como nota aixeiger me hubiera gustado ver el codigo ;). Y es un poco cutre que no sirva para users de mas de 4 caracteres ;).

Como pista os digo que tambien acepto self-keygen que en este crackme no lleva mucho tiempo.

Sa1uDoS


Título: Re: [Keygenme] Litrico
Publicado por: avesudra en 28 Enero 2013, 23:23 pm
Pero es que solo puedes insertar 4 bytes de contraseña, por lo tanto solo comprueba 2 pares de bytes del user (4 carácteres). Igual me equivoco no sé.

¡Un saludo!


Título: Re: [Keygenme] Litrico
Publicado por: MCKSys Argentina en 28 Enero 2013, 23:33 pm
El problema ya lo ha dicho Høl¥: el proggie esta mal diseñado (perdón mr.blood pero es así) y tiene un buffer overflow, con el cual podremos sobreescribir la sección .data hasta llegar el texto del mensaje.

Mas alla de eso, el maximo largo que podria tener el username seria de 9 chars (sin contar el zero final). Si se excede de ese limite, se comienza a escribir en el buffer destinado para guardar el serial (o pass).



Título: Re: [Keygenme] Litrico
Publicado por: avesudra en 28 Enero 2013, 23:59 pm
No sé ando un poco perdido, pues en este keygenMe el procedimiento es este:
Código:
primerWordUsuario;
segundoWordUsuario;
xor primerWordUsuario, segundoWordUsuario;
compara lo que queda en primerWordUsuario con primerWordKey
si no es igual salta a chico malo
Pero es que key solo tiene 4 bytes...


Título: Re: [Keygenme] Litrico
Publicado por: mr.blood en 30 Enero 2013, 18:24 pm
El problema ya lo ha dicho Høl¥: el proggie esta mal diseñado (perdón mr.blood pero es así) y tiene un buffer overflow, con el cual podremos sobreescribir la sección .data hasta llegar el texto del mensaje.

Mas alla de eso, el maximo largo que podria tener el username seria de 9 chars (sin contar el zero final). Si se excede de ese limite, se comienza a escribir en el buffer destinado para guardar el serial (o pass).



Obviamente tiene un fallo gordo, no tiene limite de entrada de caracteres. Pero el objetivo era hacer un keygen por lo que ese fallo no sirve para nada.



@avesudra la contraseña no es igual para "tras" que para "trastras". El user admite hasta 10 caracteres (9+'\0'). Fijate bien y lo veras ;).

Sa1uDoS

P.D.: Siento no poder contestar antes, estuve liado y  hasta ahora no pude usar mi PC.


Título: Re: [Keygenme] Litrico
Publicado por: .:UND3R:. en 30 Enero 2013, 23:27 pm
Muchas gracias por compartir tu Keygenme, ¿me podrías decir en que dirección absoluta (VA) es en donde el programa imprime en consola que el serial es correcto?, ya que visualizando el keygenme, este presenta un algoritmo de validación (Keygen), pero aun cumpliendo con este algoritmo, el programa muestra el mensaje de "incorrecto", el algoritmo de validación es el siguiente:

Toma 2 bytes del usuario utilizando ECX como puntero, al principio este es cero por lo que toma los primeros dos bytes de nuestro usuario ya que ECX = 0:
UN

luego de esto mueve a AX el valor de los siguientes dos bytes:
D3

una vez obtenido 4 bytes, realiza un XOR de estos dos y los compara con dos bytes de nuestro serial introducido.

Este mismo algoritmo se repite hasta que el número de caracteres de nuestro usuario - 2 sea mayor o igual a ECX (el cual se incrementa en 2 por cada vez que pasa por el ciclo):

Información adicional:
Código:
VA USER: 00402000
VA PASS: 40200A

00401051  |.  83EA 02       SUB EDX,2 //resta dos al número de serial
00401054  |> /66:8B1C0E     /MOV BX,WORD PTR DS:[ESI+ECX] //toma dos valores y los deja en BX
00401058  |.  83C1 02       |ADD ECX,2 //suma a ECX 2
0040105B  |.  66:8B040E     |MOV AX,WORD PTR DS:[ESI+ECX] //toma dos siguientes valores y los deja en AX
0040105F  |.  66:31D8       |XOR AX,BX //realiza un XOR de AX con BX



Edit:

Mi pass sería: 33167D11
Espero respuestas, saludos


Título: Re: [Keygenme] Litrico
Publicado por: mr.blood en 31 Enero 2013, 07:26 am
Y no te muestra el mensaje de Bien cuando metes tu user y pass correctas?

Si te fijas bien hay un mov dword [mensaje], 0x6E656942 esos numeros son los ascii de Bien (B=0x42, i=0x69, e=0x65, n=0x6E) y la rutina pasa por ahi cuando el serial es correcto. Mi idea era despistar un poco a los nuevos, que vean que no siempre hay cadenas de texto :P.

Sa1uDoS


Título: Re: [Keygenme] Litrico
Publicado por: .:UND3R:. en 31 Enero 2013, 09:16 am
Más que despiste dudé de la funcionalidad del keygen por los comentarios (Stack Overflow), tan así que ni me animé a probar el serial, el cual me dio correcto.

Muchas gracias por el Keygenme


Título: Re: [Keygenme] Litrico
Publicado por: fary en 3 Febrero 2013, 15:56 pm
Tutorial:

http://www.sendspace.com/file/iul4xc

Creo qeu esta bien explicado  :xD

un saludo!