Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: gastonp en 1 Julio 2010, 15:34 pm



Título: Problemas para quitar nag en Delphi
Publicado por: gastonp en 1 Julio 2010, 15:34 pm
Necesitaria que me den una mano para quitar las nags del siguiente programa:

http://rapidshare.com/files/404280967/tcm755r3.rar (http://rapidshare.com/files/404280967/tcm755r3.rar)

Segun el RDG es un InnoSetup y un analisis mas profundo revela que esta hecho en Delphi 6/7.
Al ejecutar la aplicacion aparece una nag que dice que no estoy registrado (sin ningun boton) la cual desaparece en un par de segundos y aparece otra que dice que es un programa shareware y que para ingresar presione uno de los 3 botones que aparecen debajo (el numero de boton a presionar cambia cada vez que ingresamos).

Esto es lo jice hasta ahora:
  • Quise abrila con el DeDe y primero me dice que es una aplicacion D2 :huh: y luego al querer procesarla me da un error de puntero invalido y ahi termina
  • Con el IDR si pude abrirlo y encontre la nag: se llama tnagnastyscreen (tambien la pude encontrar con un editor de recursos, pero si la elimino no arranca la aplicacion)
  • Puse un bp en el evento show de la nag, olly se detiene ahi, recorro todo el evento hasta salir y la nag todavia no aparece. Tambien probe poniendo en ret al inicio de la rutino pero no me funciono
  • Probe con el metodo de poner un bp en la api getcapture como se explica en el tute nº 838 de la pagina de Ricardo Narvaja pero el programa no se detiene al mostrar la nag
  • Probe ejecutandolo con ctrl+f8 como explica lisa & el alquimista en sus teorias pero tampoco funciono

Por lo que pude ver el programa busca un archivo de licencia para ver si estamos registrados pero dicha rutina escapa a mis conocimientos. Tambien creo que las 2 nags que aparecen al principio son controladas por la misma rutina (creo que son un solo form que muestra u oculta unos controles determinados segun la ocasion).
Les agradeceria que me dieran una mano asi depaso aprendo como eliminar este tipo de nags.
Gracias


Título: Re: Problemas para quitar nag en Delphi
Publicado por: bizco en 1 Julio 2010, 19:59 pm
yo la he quitado de esta forma:

en enablewindow se le pasa el parametro FALSE a la ventana principal del programa, tienes que ponerlo a true.

en showwindow si el classname es tnagnastyscreen o haces return o le pasas un HWND nulo.

esto contando que lo haces desde una dll injectada o desde un injerto en el ejecutable. si quieres parchearlo sin dlls o loaders pues ya sabes una forma de hacerlo y por que funciones empezar a mirar.

se me olvido comentar, si lo modificas te lo detectara y tienes que parchearlo tb.


Título: Re: Problemas para quitar nag en Delphi
Publicado por: LSL en 2 Julio 2010, 09:55 am
si el DeDe no puede, puedes obtener más información con el nuevo IDR.

Su página web:
http://kpnc.org/idr32/en/


Título: Re: Problemas para quitar nag en Delphi
Publicado por: gastonp en 2 Julio 2010, 14:10 pm
Con el IDR si lo puedo ver LSL, pero esta bastante complicado.
Una duda ctlon: en caso de querer hacer un injerto, ¿cómo se cuál es el nombre de la clase? A la API ShowWindow se le pasa como parámetro el handle de la ventana (Olly muetra en el stack el handle y el nombre de la clase pero no se de donde lo saca), ¿tendria que usar la API FindWindow primero para encontrar el handle de la clase tnagnastyscreen?


Título: Re: Problemas para quitar nag en Delphi
Publicado por: bizco en 2 Julio 2010, 15:36 pm
si lo quieres mas facil, cuando pare en showwindow y sea la nag ves al call stack para ver de donde se llamo, si no recuerdo mal es un push eax (el handle), ponle push ecx por ejemplo y ya no la muestra. lo mismo para el enablewindow, cambias el 0 por 1. luego te queda quitar la validacion del exe.


Título: Re: Problemas para quitar nag en Delphi
Publicado por: karmany en 2 Julio 2010, 19:01 pm
ctlon: "si lo quieres mas facil, cuando pare en showwindow y sea la nag ves al call stack para ver de donde se llamo, si no recuerdo mal es un push eax..."

Correcto, lo que pasa es que en los programas en Delphi hay que encontrar ese valor y el compilador Borland no hace las operaciones "directamente", me explico: Si tu programas en ensamblador y ejecutas una subrutina llamada: Mostrarventana, si debugeas el programa verás que aparece pero en un Delphi NO.

Para que veas como trabaja Delphi te invito a que leas un tute mio:

Activando controles en Delphi por karmany (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/801-900/821-Activando%20botones%20en%20Delphi%206%20por%20karmany.rar)


Título: Re: Problemas para quitar nag en Delphi
Publicado por: bizco en 2 Julio 2010, 20:14 pm
si, conozco tu tutorial sobre delphi :). este programa en concreto es facil del modo que te digo, lo tengo guardado sin nag usando este metodo ;), si quieres lo subo y le das un vistazo.

ahora que me fijo bien, se sale el programa cuando quiero usar el menu, pero vamos esto con un buen injerto se soluciona facilmente.


Título: Re: Problemas para quitar nag en Delphi
Publicado por: gastonp en 2 Julio 2010, 20:59 pm
Te agradezco tu ayuda ctlon, pero para los que recien comenzamos hacer un injerto no es tan sencillo. Te comento que en realidad no me interesa usar este programa, lo baje para practicar y ahora quiero crackearlo para aprender como se hace en estos casos.
Probe haciendo lo que vos decis: puse un bp ShowWindow, cuando para para mostrar la nag lo hace desde una call en 0041811E. Modifique el push que especifica como es mostrada la ventana para que no la muestre, pero me encontre con un problema.
Seguí ejecutando el programa con f9 sin quitar el bp y encontre que se vuelve a llamar a ShowWindow desde la call de 0041811E pero esta vez para que muestre la ventana principal de la aplicacion, por lo que si modifico el push como lo hice despues no me muestra la nag pero tampoco me muestra la ventana principal, olly me dice que se esta ejecutando la aplicacion pero no hay ninguna ventana en pantalla.
Voy a seguir probando a ver si encuentro otro modo.


Título: Re: Problemas para quitar nag en Delphi
Publicado por: bizco en 2 Julio 2010, 22:24 pm
http://www.sendspace.com/file/ywabij  dale un ojo y veras que se abre directamente la ventana del programa, el unico problema es que al darle al menu se sale.


Título: Re: Problemas para quitar nag en Delphi
Publicado por: LSL en 3 Julio 2010, 10:18 am
si con el IDR guardas un archivo MAP, que luego en el olly lo cargas con el plugin MapConv.dll, tendras mucha información interesante trazando con el olly.

mira que diferencia:

sin MAP label......................................................................................con MAP label
(http://i45.tinypic.com/2mrcr9d.jpg)



Título: Re: Problemas para quitar nag en Delphi
Publicado por: tincopasan en 3 Julio 2010, 22:23 pm
parece por lo que describis lo mismo que hace el totalcommander, en la pagina de Ricardo narvaja hay un tutorial de como activarlo, o sea sacando la nag (no me acuerdo el número de tutorial pero seguro es despues del 900) claro que si el que estas mirando esta empacado primero tenes que sacar el packer. ese tutorial lo escribio tincopasan jeje el titulo es algo como totalcommander para newbies


Título: Re: Problemas para quitar nag en Delphi
Publicado por: tena en 4 Julio 2010, 01:03 am
parece por lo que describis lo mismo que hace el totalcommander, en la pagina de Ricardo narvaja hay un tutorial de como activarlo, o sea sacando la nag (no me acuerdo el número de tutorial pero seguro es despues del 900) claro que si el que estas mirando esta empacado primero tenes que sacar el packer. ese tutorial lo escribio tincopasan jeje el titulo es algo como totalcommander para newbies

esta
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/978-TotalCommander7paranewbies_tincopasan.rar (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/978-TotalCommander7paranewbies_tincopasan.rar)


Título: Re: Problemas para quitar nag en Delphi
Publicado por: gastonp en 4 Julio 2010, 06:27 am
si con el IDR guardas un archivo MAP, que luego en el olly lo cargas con el plugin MapConv.dll, tendras mucha información interesante trazando con el olly.

Gracias LSL no sabia eso de los archivos MAP. La verdad que la diferencia es bastante.

Cita de: tincopasan
parece por lo que describis lo mismo que hace el totalcommander, en la pagina de Ricardo narvaja hay un tutorial de como activarlo, o sea sacando la nag (no me acuerdo el número de tutorial pero seguro es despues del 900) claro que si el que estas mirando esta empacado primero tenes que sacar el packer. ese tutorial lo escribio tincopasan jeje el titulo es algo como totalcommander para newbies

Read more: http://foro.elhacker.net/post.html;quote=1479353;topic=298311.0;num_replies=11;sesc=157e27acb2b986024a4befbfedb9aed0#ixzz0sgQOSe73

Asi es tincopasan, solo que una versión mas nueva que la de tu tutorial. Acabo de ver tu tuto y pude cracker el que tengo yo sin ningun problema. Es identico al de tu tute, aunque no logro entender como te diste cuenta de cual es la CALL que comprueba si estas registrado.

Cita de: tena

esta
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/978-TotalCommander7paranewbies_tincopasan.rar

Gracias tena