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


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayuda para crackear software (parking manager) con OLLYDBG
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para crackear software (parking manager) con OLLYDBG  (Leído 12,728 veces)
elias_aa5

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda para crackear software (parking manager) con OLLYDBG
« en: 6 Julio 2010, 06:42 »

hola gente necesito ayuda por que estoy intentando crackear un programa llamado parking manager aca dejo el link http://www.micronet-software.com/parkingmanager_es.htm. lo estoy intentando con el OLLYDBG el programa cuando lo abris obveo que dice no registrado pero te deja usarlo pero tiene un contador de ejecuciones que a las 30 creo no se puede abrir mas agradeceria cualquier aporte ya que es de suma importancia, gracias...
En línea

MCKSys Argentina
Moderador
***
Desconectado Desconectado

Mensajes: 2.708


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #1 en: 6 Julio 2010, 22:03 »

Hola!

¿Hasta dónde has llegado con Olly?

Recuerda que no puedes pedir cracks! (pero podemos ayudarte si te trabas) ;)

Saludos!
En línea

MCKSys Argentina

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

elias_aa5

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #2 en: 7 Julio 2010, 19:30 »

hola amigo, la verdad estoy empezando a hacerlo con el olly pero el drama que no por donde tengo que empezar osea no se si tengo que buscar en el olly el tema del contador de ejecuciones o el tema de la licencia me podrias ayudar yo lei el curso de narvaja
En línea

tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #3 en: 8 Julio 2010, 20:08 »

no tiene ventanita de registro?
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 564


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #4 en: 8 Julio 2010, 21:33 »

hola amigo, la verdad estoy empezando a hacerlo con el olly pero el drama que no por donde tengo que empezar osea no se si tengo que buscar en el olly el tema del contador de ejecuciones o el tema de la licencia me podrias ayudar yo lei el curso de narvaja

Si leistes los 48 tutos de iniciandome en el cracking y no sabes por donde empezar?  :huh:

Seguro que el conteo que mencionas es por no tener la licencia y ella desapareceria si la tubieras verdad, o me equivoco?...

pienso que si te vas hacia el tema de contador puedes poner un numero indeterminado o hasta nopear dicha sección, ahora si te vas a la licencia y llegas a registrar no tendrias problemas con el contador -supongo, almenos que hay licencias que te den un numero mayor, pero con tope  :-\ y de hecho que irias por el contador- asi que depende de como sea el caso, aunque yo diria primero que te fijes si esta enpacado, y en que lenguaje fue desarrollado la aplicación.

pd: Espero no haberte confundio  :xD

Salu2!
« Última modificación: 8 Julio 2010, 21:40 por Иōҳ » En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
LSL

Desconectado Desconectado

Mensajes: 239

Cls


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #5 en: 9 Julio 2010, 20:05 »

Bueno, el programa parece que no tiene ventanita de registro, por lo menos en el periodo de prueba, pero si te lleva a la pagina de pago para adquirirlo, pero que lastima la pagina no existe, asi que si por ahora no puedes contribuir a su mantenimiento, intenta confundirlo y que crea que está registrado.

Lo mas fácil, es con el ollydbg, estando detenido en el EP, buscarle en las string referencias, el texto que muestra normalmente para decirte que no estás registrado, por ejemplo NOT REGISTERED, una vez encontrada todas las cadenas con dicho texto, le pones a cada una un BreakPoint con la tecla F2, ahora lo corres con F9 y cuando te pare en alguna de ella, mirate en el codigo donde se encuentra el salto que evita pasar por dicho código, antes del salto tiene que haber una comparación de un valor fijo con algun valor guardado en alguna dirección ó constante, (si el valor es el apropiado salta y si no pues directo al mensaje), asi que una vez encontrada la comparación que decide si se ejecuta el salto ó no, le pones otro BP con F2 en dicha comparación y reinicias el programa (Control+F2), lo corres de nuevo y cuando se detenga en la comparación, ahí te fijas que valor tiene la dirección de la constante y por que valor compara, por ejemplo si la constante tiene el valor FFFF y lo compara con 0, ya sabes que la constante tiene que tener el valor 0 para que el programa sepa que está registrado.

Ahora tienes que buscar con la opción "Find references to Address constant", mas lugares donde se hace referencia a la dirección de la constante y que se le mueva el valor que ya sabemos que es el de chico bueno y el de chico malo, fijandonos en especial en los lugares que se mueve el valor 0 a la constante, que ya sabemos que es el valor bueno, y como el programa hace alguna comparación para saber que no está registrado y saltarse el lugar de chico bueno, ahi es donde entramos a modificar lo necesario para que la comparación sea por el mismo valor de comparación, y tener el programa en versión "Illimitata".

saludos.
« Última modificación: 10 Julio 2010, 11:30 por LSL » En línea

Saludos.

LSL.
gastonp

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #6 en: 10 Julio 2010, 17:30 »

Hola elias_aa5, para registrarlo tenes que hacer tal como te dijo LSL. Busca las cadenas de texto y vas a ver lo siguiente:

005FDEEC PUSH ParkingM.00424D90   UNICODE " (NOT REGISTERED)"
005FDF79  PUSH ParkingM.00424DB8   UNICODE " (REGISTERED)"

Si vas a la dirección 005FDEEC y subis un poco en el código vas a ver el siguiente salto:

Código:
005FDE72      .  FF15 5C104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeOb>;  MSVBVM60.__vbaFreeObjList
005FDE78      .  8B1D 90A17100  MOV EBX,DWORD PTR DS:[71A190]
005FDE7E      .  83C4 44        ADD ESP,44
005FDE81      .  66:833D ECA071>CMP WORD PTR DS:[71A0EC],0
005FDE89      .  0F84 8D000000  JE ParkingM.005FDF1C

Ahi ves como compara el valor almacenado en 71A0EC (que es 0FFFF) con 0 y si son iguales te lleva a REGISTERED de lo contrario va a NOT REGISTERED.
Despues seguis como te dijo LSL, "Find references to Address constant" o pones un Hardware Breakpoint on Write en esa dirección de memoria y ves cuando escribe el valor 0FFFF para cambiarlo por un 0.
Saludos




En línea

LSL

Desconectado Desconectado

Mensajes: 239

Cls


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #7 en: 10 Julio 2010, 19:55 »

pero si afina un poco mas con lo expuesto en el tercer párrafo, es el propio programa el que se encarga de poner el valor 0, además de otros valores que lo hacen ilimitado ("Illimitata" teniendo en cuenta que el programa es italiano) ;)
En línea

Saludos.

LSL.
gastonp

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #8 en: 10 Julio 2010, 22:52 »

En la primera referencia en la que mueve un 0 a [71AEC] se puede ver que habla de "Illimitata", la verdad que ni me habia fijado (yo tambien soy nuevo en esto).

Llendo hacia atras desde ese punto tuve que cambiar el salto de la dirección

00706414 JLE ParkingM.007064F9
por
00706414 JMP ParkingM.007064F9

 para llegar al procedimiento que comienza en 00706550 (Illimitata) y luego cambié el "PUSH ParkingM.004308C0" de la linea 007065A2 por "PUSH EAX" para que compare por el mismo valor como vos bien dijiste. Despues de eso el programa mueve un 3 a una dirección de memoria y un 0 a [71A0EC] dejandolo registrado.

¿es asi como lo hiciste LSL?

En línea

LSL

Desconectado Desconectado

Mensajes: 239

Cls


Ver Perfil
Re: Ayuda para crackear software (parking manager) con OLLYDBG
« Respuesta #9 en: 11 Julio 2010, 03:25 »

En la primera referencia en la que mueve un 0 a [71AEC] se puede ver que habla de "Illimitata", la verdad que ni me habia fijado (yo tambien soy nuevo en esto).

Llendo hacia atras desde ese punto tuve que cambiar el salto de la dirección

00706414 JLE ParkingM.007064F9
por
00706414 JMP ParkingM.007064F9

 para llegar al procedimiento que comienza en 00706550 (Illimitata) y luego cambié el "PUSH ParkingM.004308C0" de la linea 007065A2 por "PUSH EAX" para que compare por el mismo valor como vos bien dijiste. Despues de eso el programa mueve un 3 a una dirección de memoria y un 0 a [71A0EC] dejandolo registrado.

¿es asi como lo hiciste LSL?



Si, es la solución para la versión de registrado, pero si te fijas, un poco más



el valor que se mueve a EAX para luego compararlo con el de la dirección fija de 4308C0, es el valor que se encuentra en la dirección 71A0F4, y ahí es donde deberiamos tener el mismo valor que hay en 4308C0 para que la comparación posterior devuelva en EAX el valor 0, para que en el TEST EAX,EAX al ser igual a  0 active el flag Zero con 1 y esto produzca el salto JE.

Por qué hay que fijarse en esto ?.
Porque si buscamos mas lugares donde se utiliza el valor que debe tener en la dirección 71A0F4 para realizar otras posibles comparaciones o utilizarlas en el codigo del programa, vemos que existen y tambien tendriamos que arreglar él resto de ese código para no tener problemas mas adelante.



Así que vamos a aprovechar el lugar donde nos encontramos, para matar varios pajaros de un solo tiro.
Para cambiar el código de un programa tenemos que tener cuidado de no machacar código necesario para la ejecución correcta del mismo, y como necesitamos algo mas de lugar para mover valores entre dos direcciones fijas, vamos a utilizar parte del lugar que ocupan los bytes del codigo de la api de comparación, que realmente no nos hace falta ejecutarla, pues ya sabemos lo que el programa necesita, así que vamos a modificar el código para mover a la direccion 71A0F4 el valor de la dirección 4308C0 que es el que deberiamos tener en caso de estar registrado en versión ilimitada, NOPeamos la llamada a la función de comparación que ya no nos sirve y además esta incompleta en cuanto a valores suministrados, y ademas vamos a poner a 0 el valor de EAX y activar el flag Zero para que se produzca el salto JE, (estos tres pasos lo obtenemos siempre con un simple XOR, en vez del TEST),






En línea

Saludos.

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

Ir a:  

Powered by SMF 1.1.20 | SMF © 2006-2008, Simple Machines