Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: x64core en 20 Septiembre 2012, 08:37 am



Título: Modificando programa saber si se ejecuto una funcion
Publicado por: x64core en 20 Septiembre 2012, 08:37 am
Hola a todos, chicos quien sabe como puedo poner un "indicador" dentro de un programa el cual me diga si durante la ejecucion una parte de codigo se ha ejecutado o no, veran tengo un programa que tiene varias funciones pero al parecer se ejecutan en ciertas
circunstancias, y me gustaria saber si hay algun truco o algo que me puedo indicar si se ha ejecutado esa funcion...
 por ejemplo en VB durante la programacion, uno puede escribir:

debug.print "mensaje" indicando que se ah ejecutado esa funcion


hay algo como eso? :) gracias!


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: karmany en 20 Septiembre 2012, 22:14 pm
¿Por qué no creas en la misma función, o en la llamada a ella, una variable que se vaya incrementando?


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: MCKSys Argentina en 20 Septiembre 2012, 22:55 pm
Si lo estas depurando, con un BP estaria listo. Tambien puedes usar BP Log.

Tambien puedes modificar el codigo para que llame a una API, por ej.: OutputDebugString y pasarle un string que Olly va a poder capturar. Eso si, vas a tener que tocar la IAT, porque normalmente esa API no esta; o bien, puedes hacer el call directo, pero funcionara en tu maquina (o en otra que tenga igual SO y Service Pack).

Si no te molesta, tambien puedes modificar para que llame a MessageBoxA, la cual esta casi siempre en la IAT, pero tienes el problema que para la ejecucion...

En realidad, no he entendido completamente tu pregunta, pues empiezas hablando de programas compilados y luego saltas a una instrucción que se usa al momento de crear un EXE en un lenguaje especifico (VB). Cabe aclarar, que el metodo print de debug solo sirve en el IDE...

Quizas podrias ser mas especifico...

Saludos!


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: x64core en 23 Septiembre 2012, 02:01 am
Si bueno me referia a VB porque es un claro ejemplo y creo que todos sabemos como funiona esa funcion, y lo que queria saber
era si existia una funcion como esas para ejecutar el programa sin depurador y saber si ejecuto esa funcion en tiempo de ejecucion...


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: Иōҳ en 23 Septiembre 2012, 06:46 am
Puedes hookear las funciones que quieres monitorear y que al pasar a la función monitoreada te devuelva un mensaje.

Saludos,
Nox.


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: faawlex en 21 Octubre 2012, 05:58 am
 ptrace FTW !!


Título: Re: Modificando programa saber si se ejecuto una funcion
Publicado por: .:UND3R:. en 21 Octubre 2012, 17:27 pm
Con debugger:

- BP (breakpoint) en el inicio de las funciones/procedimientos (generalmente push ebp).
- BP Condicional (visualizar el log del debugger).
- OutputDebugStringOut.
- generar una excepción y configurando al debugger para que evite saltarla.

Sin debugger:
- Al principio de la función/procedimiento utilizar MessageBox("Paso función 1").
- Sniffer de API'S.