Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Fucko en 21 Abril 2011, 08:26 am



Título: Como saber en que dirección de olly está un boton de comando?
Publicado por: Fucko en 21 Abril 2011, 08:26 am
lo se hacer en las app delphi, con el DEDE, pero en otras no....

lo que quiero saber, es como hacer para tracear un comando X dentro de olly, o sea, si en la app hay un boton que dice "leer" donde poner el BP en olly para tracear....
las delphi son más faciles en este sentido :D

la app en cuestión esta vez es visual c++


Título: Re: Como saber en que dirección de olly está un boton de comando?
Publicado por: karmany en 21 Abril 2011, 12:20 pm
En visual C++ depende si se ha programado con API directamente o se ha realizado con la Microsoft Foundation Classes. Esto te lo indica seguramente cualquier detector de packers o examinando un poco el código y viendo las librerías usadas.

En general, para hacer lo que quieres, tienes que buscar alguna referencia, ¿sale algún MessageBox? Puedes intentar algo sencillo como pulsar el botón leer y rápidamente pulsar F12 en olly que es la pausa y ver la pila, posiblemente te lleve a la zona que tú buscas. Tienes que probar... por ejemplo también, si el botón pone leer, tal vez abra una nueva ventana... podrías capturar la API. ¿Se desactiva el botón leer? Tal vez llame a sendmessage...



Título: Re: Como saber en que dirección de olly está un boton de comando?
Publicado por: sunicomi en 21 Abril 2011, 12:41 pm
Bueno, yo no entiendo mucho de esto pero se podría probar a poner un message breakpoint del mensaje 101 o 202 al botón no?



Título: Re: Como saber en que dirección de olly está un boton de comando?
Publicado por: karmany en 21 Abril 2011, 17:51 pm
Bueno, yo no entiendo mucho de esto pero se podría probar a poner un message breakpoint del mensaje 101 o 202 al botón no?

Sí también es muy utilizado pero seguro que más complejo.
Para hacer esto que te comenta sunicomi debes ejecutar el programa en OllyDBG, después tienes que ir a la ventana Windows de OllyDBG (en la barra de herramientas pulsa la W). Allí busca el botón que quieres y sobre él pulsa botón derecho "Message Breakpoint on ClassProc". Lo que dice sunicomi es que busques algún evento, por ejemplo él indica 101 = WM_KEYUP o 202 = WM_LBUTTONUP. En la ventana de Windows de OllyDBG puedes probar varias opciones...


Título: Re: Como saber en que dirección de olly está un boton de comando?
Publicado por: Fucko en 23 Abril 2011, 08:12 am
gracias ambos... como podría ver si fue programado con api o classes???


los detectores de packers, solo dicen visual c++ 6.0.....


hay messagebox, pero al terminar el proceso, el boton no se si queda inutilizado....
con delphi es facil ejjejejejejejeje
pero estos no.....

lo que hice, fue poner bp al msgbox, y luego tratar de buscar el "push ebp"
pero no se 100% si el boton comienza ahí o antes.... :S



Título: Re: Como saber en que dirección de olly está un boton de comando?
Publicado por: Gaspacho79 en 1 Mayo 2011, 23:20 pm
Mira, yo soy horrible haciendo esto... pero lo que siempre hago cuando el boton abre algun msgbox o me doy cuenta que usa alguna API es:

-Apreto el boton
- pauseo olly
- apreto alt+f9 (execute till user code)
- me voy de la api


Ahi podes ver desde donde se llamo a la api. Si no esta hecho con ninguna api fijate de pausear el olly apenas apretas el boton...

Ojo que yo soy re newbie y seguro estoy hablando huevadas, arranque hace bastante poco.

Saludos