Hola, Bienvenido al blog Alumnat de XL, esperamos que disfrutes de tu estancia.

miércoles, 23 de febrero de 2011

¿Qué es un crack?

Cuando me empezaba a gustar esto de la informática, por el 2007 más o menos... siempre tuve la curiosidad de como funcionaba un crack xD. Por suerte, y con mucha paciencia, he podido aprender como funcionan, incluso a hacer algunos de ellos. Hoy un amigo me pasó un típio "crackme" (programas tipo 'juego' para crackear, y practicar) que había hecho en VB. El programa al iniciarse, comprueba la fecha, y después de 1 mes, caduca... vamos, lo que seria una fácil simulación de cualquier programa trial jeje. El programa al iniciarse, muestra la ventana como que está caducado... ¿El reto? pues evitar esa comprobación y ventana, y seguir con el programa normal. En este caso es un fácil ejemplo, con dos ventanas de mierda xD.

Veamos la ventana al iniciar el 'crackme':



Sé, que está programado en VB, y que el objetivo es saltarse ese 'Form' (ventanita) para seguir con el programa..., sabiendo de antes que VB al cargar un 'Form' usa una constante... "2B0" la busco:





Y me lleva ahí... pulso en ese CALL (la segunda fila)... y caigo en la rutina a la llamada del form. Y apunto el final de la rutina (00402154):



Bien, me voy arriba donde está el 'push' que realiza la acción, y miro desde donde salta para llegar a este 'push':



una vez arriba, y al dar doble click veo esto:



Como veis en el cuadro de texto sale "JMP 00402050" que es el salto que realiza para comprobar la 'licencia'... pues en vez de que compruebe la licencia, le diré que pase directamente al final, con la dirección que antes me había apuntado =P, lo edito de tal manera que quede así: "JMP 00402154" Bíen, guardo y rezo para que no haya roto el programa xD:



Y ya tengo mi 'programita' registrado, funcionando 100% ^^. No espereis entender todos esos códigos raros y liosos que se ven en la imágen, pues yo más de la mitad no los entiendo tampoco... Yo no sé mucho de ensamblador y cracking pero me manejo bastante con cosas no muy difíciles.

Un resumen de lo que he he hecho es:

- abir el programa con un disassembler (para modificar la acción de un programa etc).
- buscar el final de la comprobación de si el programa está caducado o no (primera ventanita) y apuntar la dirección
- Ir al principio de la acción, y hacer un salto a la dirección apuntada anteriormente, evitando que el programa 'pase' por la comprobación (primera ventanita)

así, aunque no lo entendais xD, veis la movida de un crack..., no es solo bajarlo, sustituirlo y tener el programa completo. Detrás lleva mucho trabajo, y este ejemplo os aseguro que es muy simple jeje

Saludos, N@d4L :)

1 comentarios:

zOhAN dijo...

Joder que currada Sergio... aixina m´agra, que invistigues!

Publicar un comentario