PDA

Ver la versión completa : Ayuda con 1 programa



dares6
07-12-2004, 20:05
Saludos a todos

Estoy intentado crackerar un programa basado te dan un número y te piden el codigo de activación. Estoy usando el olly (tengo poca experiencia con el ) y el programa esta escrito en visual c++ 6. El problema esta en que el codigo no se encuentra en el archivo principal, parece ser que se encuentra en un ocx. Estoy intentando buscar las cadenas relacionadas con la ventana de activación pero solo he logrado encontrar donde se colocarian los datos de activación, pero nada de cual seria el codigo.

Alguna idea para seguir me serviria de utilidad.

Un saludo

Dares6

SxR
09-12-2004, 00:51
Como digo siempre... yo te lo crackeo por un módico precio, o te ayudo a crackearlo jejeje tenía que decirlo!!!

A ver, tb lo dije ya varias veces, para saber qué archivos se usan en un programa usa File Monitor o Registry Monitor. Tb puedes utilzar SoftIce y, en el momento que haga una captura de los datos que te pide (GetWindowTextA etc etc etc) puedes ver en qué subrutina, ocx u archivo se encuentra.

Ayudado? Mas dudas al foro. Saludos

dares6
09-12-2004, 02:14
La situación es la actual:

He conseguido encontrar la ventana que te indica q es una clave erronea, pero no a traves de la busqueda de strings pq, se encuentran ocultos. He conseguido ir tirando del hilo y ver que se encuentra en un ocx y parece ser que he encontrado la subrutina que llama el programa principal a la ocx cuando realiza la llamada. Es esta y por ahi me he quedao.
:rolleyes: :mad:

Stack

0012F21C 0012F850
0012F220 00FB2D57 RETURN to P*****.00FB2D57 from <JMP.&MFC42.#4224> <=== Es al ventana de salida de q el codigo no es valido ( 90% creo q es asi)
0012F224 00D385F8
0012F228 00D4EF18 ASCII "**texto producto****"
0012F22C 00000010
0012F230 0012F850
0012F234 00FD18A0 P*****.00FD18A0
0012F238 0012F274
0012F23C 00000001
0012F240 00D38568
0012F244 00D4EF18 ASCII "*****************"
0012F248 025C0998
0012F24C 00D385F8
0012F250 00D38568
0012F254 00D4EDD8 ASCII "12" <= Dato introducido en la caja de texto
0012F258 0012F248
0012F25C 0012F38C Pointer to next SEH record
0012F260 00FCE460 SE handler
0012F264 00000008
0012F268 73D523D8 RETURN to MFC42.73D523D8
0012F26C 00FD18A0 P*****.00FD18A0
0012F270 00000111


Procedimiento q creo q es el q actua: ===> [P*****.00FD18A0]

1001DCC7 >/$ 55 PUSH EBP
1001DCC8 |. 8BEC MOV EBP,ESP
1001DCCA |. 53 PUSH EBX
1001DCCB |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
1001DCCE |. 56 PUSH ESI
1001DCCF |. 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
1001DCD2 |. 57 PUSH EDI
1001DCD3 |. 8B7D 10 MOV EDI,DWORD PTR SS:[EBP+10]
1001DCD6 |. 85F6 TEST ESI,ESI
1001DCD8 |. 75 09 JNZ SHORT P*****.1001DCE3
1001DCDA |. 833D 5C910210 >CMP DWORD PTR DS:[1002915C],0
1001DCE1 |. EB 26 JMP SHORT P*****.1001DD09
1001DCE3 |> 83FE 01 CMP ESI,1
1001DCE6 |. 74 05 JE SHORT P*****.1001DCED
1001DCE8 |. 83FE 02 CMP ESI,2
1001DCEB |. 75 22 JNZ SHORT P*****.1001DD0F
1001DCED |> A1 D07D0210 MOV EAX,DWORD PTR DS:[10027DD0]
1001DCF2 |. 85C0 TEST EAX,EAX
1001DCF4 |. 74 09 JE SHORT P*****.1001DCFF
1001DCF6 |. 57 PUSH EDI
1001DCF7 |. 56 PUSH ESI
1001DCF8 |. 53 PUSH EBX
1001DCF9 |. FFD0 CALL EAX
1001DCFB |. 85C0 TEST EAX,EAX
1001DCFD |. 74 0C JE SHORT P*****.1001DD0B
1001DCFF |> 57 PUSH EDI
1001DD00 |. 56 PUSH ESI
1001DD01 |. 53 PUSH EBX
1001DD02 |. E8 15FFFFFF CALL P*****.1001DC1C
1001DD07 |. 85C0 TEST EAX,EAX
1001DD09 |> 75 04 JNZ SHORT P*****.1001DD0F
1001DD0B |> 33C0 XOR EAX,EAX
1001DD0D |. EB 4E JMP SHORT P*****.1001DD5D
1001DD0F |> 57 PUSH EDI
1001DD10 |. 56 PUSH ESI
1001DD11 |. 53 PUSH EBX
1001DD12 |. E8 18FDFFFF CALL P*****.1001DA2F
1001DD17 |. 83FE 01 CMP ESI,1
1001DD1A |. 8945 0C MOV DWORD PTR SS:[EBP+C],EAX
1001DD1D |. 75 0C JNZ SHORT P*****.1001DD2B
1001DD1F |. 85C0 TEST EAX,EAX
1001DD21 |. 75 37 JNZ SHORT P*****.1001DD5A
1001DD23 |. 57 PUSH EDI
1001DD24 |. 50 PUSH EAX
1001DD25 |. 53 PUSH EBX
1001DD26 |. E8 F1FEFFFF CALL P*****.1001DC1C
1001DD2B |> 85F6 TEST ESI,ESI
1001DD2D |. 74 05 JE SHORT P*****.1001DD34
1001DD2F |. 83FE 03 CMP ESI,3
1001DD32 |. 75 26 JNZ SHORT P*****.1001DD5A
1001DD34 |> 57 PUSH EDI
1001DD35 |. 56 PUSH ESI
1001DD36 |. 53 PUSH EBX
1001DD37 |. E8 E0FEFFFF CALL P*****.1001DC1C
1001DD3C |. 85C0 TEST EAX,EAX
1001DD3E |. 75 03 JNZ SHORT P*****.1001DD43
1001DD40 |. 2145 0C AND DWORD PTR SS:[EBP+C],EAX
1001DD43 |> 837D 0C 00 CMP DWORD PTR SS:[EBP+C],0
1001DD47 |. 74 11 JE SHORT P*****.1001DD5A
1001DD49 |. A1 D07D0210 MOV EAX,DWORD PTR DS:[10027DD0]
1001DD4E |. 85C0 TEST EAX,EAX
1001DD50 |. 74 08 JE SHORT P*****.1001DD5A
1001DD52 |. 57 PUSH EDI
1001DD53 |. 56 PUSH ESI
1001DD54 |. 53 PUSH EBX
1001DD55 |. FFD0 CALL EAX
1001DD57 |. 8945 0C MOV DWORD PTR SS:[EBP+C],EAX
1001DD5A |> 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
1001DD5D |> 5F POP EDI
1001DD5E |. 5E POP ESI
1001DD5F |. 5B POP EBX
1001DD60 |. 5D POP EBP
1001DD61 \. C2 0C00 RETN 0C

A ver si a alguien se le ocurre algo.


dares6

SxR
09-12-2004, 12:29
Intenta decir de dónde es el código que posteas, del ocx, de un dll.. pq puede ser que te encuentres dentro de una api o dll de windows genérica y no te servirá de nada.

Tb puedes describir cómo has hecho para llegar hasta ahí que programa utilizaste y cómo es el cuadro de texto que te aparece. Esque analizar ASM así a pelo es un poquillo...

Saludos

dares6
09-12-2004, 12:48
Saludos

Es el codigo de arriba es del stack de ejecucion. El de abajo es del ocx y es un proceso que creo q es el que llama para comprobar el codigo.
He usado olly y he puesto varios breakpoints GetWindowTextA y en la ventana de error.
Lo gracioso es que siguiendo el proceso he conseguido descubrir el codigo que te dan para entregar y luego otra cadena q prometia mucho pq era distinta a la otra y aprecia el codigo de activacion pero no va, una pena penita pena.

Dares6

TseTse
09-12-2004, 14:48
¿Password cracking?

Leeros las descripciones de los foros porque esto no tiene nada que ver con passwords....

Lo muevo a Aplicaciones.

TseTse

dares6
09-12-2004, 17:47
Como q no tiene q ver con craking? :confused: :confused:

Si mas craking q esto creo q no hay ^^, humilde opinion

Ahora me leo las descripciones


dares6

TseTse
09-12-2004, 20:19
Como q no tiene q ver con craking? :confused: :confused:

Si mas craking q esto creo q no hay ^^, humilde opinion

Ahora me leo las descripciones


dares6

Pone password cracking, no cracking a secas....

TseTse

SxR
10-12-2004, 17:31
Bueno, en realidad el quiere crackear un password por lo que mal del todo no estaría aunque como dice Tse, mejor está donde está.

En cuanto a lo que dices... no podías dar más especificaciones? Esque el codigo que das no está completo y voy a ciegas por lo que la ayuda es muy limitada

dares6
10-12-2004, 17:52
Saludos

Dime el codigo que necesitas y te lo posteo,si quieres capturas tambien.



dares6

SxR
13-12-2004, 01:27
lo que se trata es que analizes tu el código, se trata que hagas pruebas-error.

Prueba cambiando je, jne... desensambla con W32DASM que con los programas escritos en C++ va bastante bien y luego comentas. Esque date cuenta que estás posteando código protegido y que el olly no le va mu bien. Mira otra vez y luego postea. Prueba a ver si encuentras el string que te sale en la ventana, el código de error... dónde sales con SoftIce?