Título: Programa que pide datos de internet. Publicado por: APOKLIPTICO en 10 Diciembre 2008, 04:41 am Hola! Me topé con un programa que hicieron en la empresa donde trabaja mi viejo, entonces decidí empezar a analizarlo. El programa lo que hace es mostrar una pantalla de Login, entonces un pone su usuario y contraseña, estos se envían y se comprueban en una base de datos en el servidor, el cual lo autentifica.
Empecé a analizar el tráfico del servidor (tengo una cuenta válida) y me di cuenta que el servidor manda los datos sin problemas, osea que la pantalla de login, si pudiera ser pasada, el programa directamente empezaría a recibir datos sin problemas. Entonces traté de saltearla, aca se me quemaron los papeles (no sabia que hacer), xq me metí con el olly, y traté poniendo un jmp en el codigo del boton "aceptar" para que saltara a la función que carga el programa, pero no pude, cuando lo ensamble y lo guardé, al probarlo crasheo al tratar de apretar el boton aceptar. No puedo editar los recursos (no se por que), no andan los programas mas comunes con este archivo, está creado en VB 6. Lo que quiero hacer es encontrar el lugar donde recibe la respuesta del servidor (si es valido o no el login) y hacer que sea siempre verdadera. El tema es que no se que api buscar, alguien tiene una idea??? Un abrazo APOKLIPTICO Update: Lo peor de todo! el programa recibe los errores de internet, asi que no los puedo buscar en "referenced text strings" ahh!! it's a nightmare!! Título: Re: Programa que pide datos de internet. Publicado por: Shaddy en 10 Diciembre 2008, 06:36 am Hola! Me topé con un programa que hicieron en la empresa donde trabaja mi viejo, entonces decidí empezar a analizarlo. El programa lo que hace es mostrar una pantalla de Login, entonces un pone su usuario y contraseña, estos se envían y se comprueban en una base de datos en el servidor, el cual lo autentifica. Empecé a analizar el tráfico del servidor (tengo una cuenta válida) y me di cuenta que el servidor manda los datos sin problemas, osea que la pantalla de login, si pudiera ser pasada, el programa directamente empezaría a recibir datos sin problemas. Entonces traté de saltearla, aca se me quemaron los papeles (no sabia que hacer), xq me metí con el olly, y traté poniendo un jmp en el codigo del boton "aceptar" para que saltara a la función que carga el programa, pero no pude, cuando lo ensamble y lo guardé, al probarlo crasheo al tratar de apretar el boton aceptar. No puedo editar los recursos (no se por que), no andan los programas mas comunes con este archivo, está creado en VB 6. Lo que quiero hacer es encontrar el lugar donde recibe la respuesta del servidor (si es valido o no el login) y hacer que sea siempre verdadera. El tema es que no se que api buscar, alguien tiene una idea??? Un abrazo APOKLIPTICO Update: Lo peor de todo! el programa recibe los errores de internet, asi que no los puedo buscar en "referenced text strings" ahh!! it's a nightmare!! Y bueno hay muchos métodos, igual no para por referencias pero si cuando coge el texto, si está en VB 6 hay un plugin que se llama "puntos mágicos" o algo así, que pone un breakpoint en VB5 o VB6 (o el punto H), para cada vez que se produzca un evento que pare, así cuando le des al botón de aceptar pues eso. Salu2... Título: Re: Programa que pide datos de internet. Publicado por: APOKLIPTICO en 10 Diciembre 2008, 17:51 pm Si bueno, pero en realidad no necesito mucho eso, xq con vbdecompiler mire las direcciones de cada uno de los controles, y puse un bp en el "push ebp"...
Ahi tengo que ir apretando F8 forever hasta que aparezca una comparacion o algo asi? Título: Re: Programa que pide datos de internet. Publicado por: Shaddy en 10 Diciembre 2008, 19:38 pm Si bueno, pero en realidad no necesito mucho eso, xq con vbdecompiler mire las direcciones de cada uno de los controles, y puse un bp en el "push ebp"... Ahi tengo que ir apretando F8 forever hasta que aparezca una comparacion o algo asi? y no porque probablemente lo que hará será enviar unos datos y comprobarlo en una bse de datos de MySQL o algo así, por lo tnato no verás ninguna compración. Salu2... Título: Re: Programa que pide datos de internet. Publicado por: APOKLIPTICO en 11 Diciembre 2008, 00:22 am A lo que me refiero, es el jump condicional, que continua con la función de cargar, en definitiva, quiero saltearme la pantalla de login, o bien que cujando ponga acpetar, directamente sea o no correcto el nombre de usuario, que salte a la pantalla principal...
Como hago para saltearmela? Título: Re: Programa que pide datos de internet. Publicado por: Shaddy en 11 Diciembre 2008, 05:14 am A lo que me refiero, es el jump condicional, que continua con la función de cargar, en definitiva, quiero saltearme la pantalla de login, o bien que cujando ponga acpetar, directamente sea o no correcto el nombre de usuario, que salte a la pantalla principal... Como hago para saltearmela? Bueno pues cuando se hace la función Load, miras la direccion del evento y en vez de cargar el form de login cargas el principal y listo.. Título: Re: Programa que pide datos de internet. Publicado por: APOKLIPTICO en 11 Diciembre 2008, 19:33 pm Voy a probarlo y te cuento como me va, gracias!...
Título: Re: Programa que pide datos de internet. Publicado por: APOKLIPTICO en 11 Diciembre 2008, 19:50 pm Okay, el problema es que no encuentro el evento Form_Load ni en la pantalla de login, ni en la principal (que es un form MDI), pero encuentro una funcion que se llama "cargar", entonces reemplazo el "push ebp" de la funcion cargar del form de login, y le hago un "jmp 005AB520" que es la funcion "cargar" del form MDI, pero me tira access violation...
Todo esto usando el ollydbg shadow y el vbdecompiler para conocer las direcciones de las funciones, eventos, etc... Alguna otra idea? PD: esta es el native code del evento click del boton "aceptar". Código
Alguna de los saltos condicionales puede ser el que evita que cargue el formulario principal? Título: Re: Programa que pide datos de internet. Publicado por: Shaddy en 12 Diciembre 2008, 02:49 am mmm... cuando paras en el punto que te digo, vas a una tabla de "eventos", estoy seguro que cuando pasas el login va a uno de esos eventos... pues evitar el que va al login e ir directamente ahí..
|