Una ayuda que esto atascado

Iniciado por rave, 6 Mayo 2008, 18:32 PM

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

tena

lo ejecuto y no me aparece nada
¿?

tena

Hay un archivo .ini que tiene los datos del registro

[register]
user=
key=


rave

si no hace nada es que hay que registrar la librería que he subido con el programa, es una libreria estandard para comunicarse con ciertas cámaras.

El ini ya lo había probado, y aunque lo rellenes no hace nada. Me voy a poner ahora con los calls a ver que tal.

Gracias por la ayuda!
Pcmcia ZCom XI-325 - Gigabyte gn-wbkgv (ralink rtl 2570) - Thomson speed touch 121g (Prism GT) - Pheenet WLU-803G - Alfa AWUS036H - Dipolo5, 7dB - 2x Panel 7dB - Panel 19dB (Pacific Wireless) - 5x fonera

solidcls

#13
El parche es este:


004B64A4      B0 01         MOV AL,1
004B64A6      C3            RETN


saludos.
Solid.
Solid [CrAcKsLaTiNoS]

rave

solidcls muchas gracias. Efectivamente así parece que el programa esta registrado.

Lo que has hecho es modificar la comprobación inicial del programa ¿no?, ya se que soy algo pesado, pero ¿me puedes decir de una forma rápida como has llegado hasta ahí?, es para yo seguir investigando.

Muchas gracias por la ayuda.
Pcmcia ZCom XI-325 - Gigabyte gn-wbkgv (ralink rtl 2570) - Thomson speed touch 121g (Prism GT) - Pheenet WLU-803G - Alfa AWUS036H - Dipolo5, 7dB - 2x Panel 7dB - Panel 19dB (Pacific Wireless) - 5x fonera

mikello

Hola!

La explicación de por qué el parche es el que proponía solidcls es el siguiente:

· Ejecutamos el programa en OllyDbg. Cuando sale el MessageBox, pausamos y ejecutamos hasta que se produzca la vuelta al código cliente (Alt+F9). Al pulsar sobre el botón de aceptar, paramos en 46091F. Subiendo un poco vemos que desde 460910 está la llamada a MessageBoxA, y si bajamos desde 46091F vemos que no hay ningún salto que permita "puentear" la llamada a la API, por lo que esa función entera es llamada en caso de no estar registrado.

· Entonces, pulsamos Ctrl+F9 y con F7, salimos a la función que llamó al procedimiento que mostraba el MessageBox (460834...460988). Caemos en una zona que el programa utiliza para restablecer EBX, ESI y EDI de manera genérica así que seguimos hasta el RET.

· Este RET nos lleva a 4B851A. Si nos fijamos, la línea siguiente en la que caemos es apuntada por un salto. Dicho salto está en 4B8500 y éste sí que permite evitar llamar al MessageBox:

004B84F9  |.  E8 A6DDFFFF   CALL jpgserve.004B62A4
004B84FE  |.  84C0          TEST AL,AL
004B8500  |.  75 1A         JNZ SHORT jpgserve.004B851C
004B8502  |.  6A 00         PUSH 0
004B8504  |.  B9 58874B00   MOV ECX,jpgserve.004B8758                ;  ASCII "Unregistered Version"
004B8509  |.  BA 70874B00   MOV EDX,jpgserve.004B8770                ;  ASCII "You are running an ..."
004B850E  |.  A1 B4214C00   MOV EAX,DWORD PTR DS:[4C21B4]
004B8513  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
004B8515  |.  E8 1A83FAFF   CALL jpgserve.00460834
004B851A  |.  EB 38         JMP SHORT jpgserve.004B8554
004B851C  |>  8D55 84       LEA EDX,DWORD PTR SS:[EBP-7C]


· He copiado toda esa zona, para que observes que primero se llama a 4B62A4, y después se comprueba si devolvió diferente de cero, en cuyo caso salta el código que muestra el MessageBox. Nos introducimos entonces en la función 4B62A4, y tenemos:

004B62A4  /$  E8 FB010000   CALL jpgserve.004B64A4
004B62A9  \.  C3            RETN


de manera que volvemos a introducirnos en 4B64A4, y estaremos en la rutina que comprueba si el programa está registrado. Ensamblamos lo comentado anteriormene, y todo irá de perlas...

Saludos, mikello

rave

Muchas gracias, me queda muy claro. Ahora me pondré con unos crackme antes de seguir con aplicaciones.
Pcmcia ZCom XI-325 - Gigabyte gn-wbkgv (ralink rtl 2570) - Thomson speed touch 121g (Prism GT) - Pheenet WLU-803G - Alfa AWUS036H - Dipolo5, 7dB - 2x Panel 7dB - Panel 19dB (Pacific Wireless) - 5x fonera