Táctica para la búsqueda de generación seriales

Iniciado por xkill, 14 Agosto 2005, 20:29 PM

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

xkill

Hola foreros!
El problema que tengo es el siguiente: en la parte de un código he encontrado una call donde se genera un serial, el problema es que dentro de esa call hay muchas mas llamadas, saltos a otras funciones y hasta ret's que se utilizan para llegar a otras dll's, después de la call hay un mov eax,ecx, y si doy : d ecx veo que ahí esta el serial, lo que me lleva a pensar que casi antes de regresar de la call se genera el serial pero paso mucho tiempo traceando dentro de esa call y nunca llego al final,  ???

Seria bonito poder tracear hacia atrás para ver que fue lo último que sucedió antes de regresar de la call  ::)

Gracias por sus ayudas y también por leerme!  :D
Muchas cosas, conociéndolas bien, con el consentimiento de uno, pueden funcionar de manera contraria. William Shakespeare.
Inclusive el software ;)

ViCrack€r

Hola xkill, pon el nombre del programa para ver si alguien encuentra el serial y si pudiera ser explicar como lo ha hecho.

Saludos.  :)

xkill

Me gustaría poner el programa pero es un crackme, y quiero solucionarlo por mi mismo, bueno si doy con la solución,  :-\

Quizá encuentre la manera de guardar un registro de las instrucciones que se han ejecutado desde la llamada de esa call hasta su regreso, he probado con un breakpoint de rango y usando el la opción t para que guarde en el buffer de traceo, pero este solo guarda las instrucciones que generan bpr's y como no se exactamente que rangos de direcciones son los de la call entonces no lo puedo usar,   :'(

Es como si quisiera que desde una posición de memoria x guardara todas las instrucciones que se ejecutan hasta llegar a una posición y.

Bueno hay les cuento si encuentro la manera.  ;)

Saludos!  :)
Muchas cosas, conociéndolas bien, con el consentimiento de uno, pueden funcionar de manera contraria. William Shakespeare.
Inclusive el software ;)

xkill

Bueno daré unos pocos datos mas sobre el programa, espero que no me vayan a benear por eso,

El programa esta hecho en visual basic, utiliza la función vbaStrCmp para compara los seriales, después de esta llamada si los seriales son distintos EAX contiene FFFFFFF, hay un NEG y otras cosas, luego viene un je, si cambio el je por un jne ya me sale el mensaje de serial correcto y crackme crackeado  :P pero ahora quiero encontrar el serial correcto.  8)

Antes de la call a vbaStrCmp hay otra call donde se genera el serial a comparar, pero dentro de esa call es que da mil vueltas para generarlo, al salir eax contiene el serial que va a comparar, tracear dentro de esa call para encontrar el lugar donde se esta generando es que me da problemas,  :'(

Bueno espero que con esos datos alguien me pueda ayudar, Saludos!  :D
Muchas cosas, conociéndolas bien, con el consentimiento de uno, pueden funcionar de manera contraria. William Shakespeare.
Inclusive el software ;)

ViCrack€r

Hola xkill hace poco lei un tutorial sobre como utilizar Ollydbg en VB, te lo voy a resumir:
Para encontrar la zona del programa donde sale el serial:

En el Ollydbg haces Find Command (control + F) y escribes:
Call [eax+000000a0]
te saldran varias direcciones y en la primera que te salga le pones un BP, F9 y para en esa direccion, una pocas lineas mas abajo te saldra la call vbaStrCmp y el serial que buscabas.


Saludos.   :D

xkill

Por lo pronto estoy trabajando con softice ya que tengo win98, leí en un post tuyo que también tenias problemas con olly y win98, y pudiste solucionarlo?   ???

En la otra computadora que tengo con XP probé lo de la Call [eax+000000a0] pero no creo que funcione para todos los programas aun que estén hechos en vb, la verdad no lo intente mucho ya que la computadora me recalienta cuando uso el olly (maldito prescott >:() ,  seguiré intentando con el sice,

Gracias por tu respuesta!  :D
Saludos!
Muchas cosas, conociéndolas bien, con el consentimiento de uno, pueden funcionar de manera contraria. William Shakespeare.
Inclusive el software ;)

4rS3NI(


xkill

Tiene anti Smart Check, también esta comprimido pero logre descomprimirlo, no se ejecuta ya que el compresor devasta la tabla de importación, por lo menos puedo ver el código muerto con el w32dasm y algunas funciones importadas que me han ayudado para poner los breakpoint con el sice, buscare algún frogsice para el  Smart Check ;)
Se me ocurre que busca la cadena de texto Smart Check, quizá el titulo de la ventana o algo así, por que depurando he visto que lo hace con el w32dasm, ida y otros  :o

Saludos!
Muchas cosas, conociéndolas bien, con el consentimiento de uno, pueden funcionar de manera contraria. William Shakespeare.
Inclusive el software ;)