Modificando programa saber si se ejecuto una funcion

Iniciado por x64core, 20 Septiembre 2012, 08:37 AM

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

x64core

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!

karmany

¿Por qué no creas en la misma función, o en la llamada a ella, una variable que se vaya incrementando?

MCKSys Argentina

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!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


x64core

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...

Иōҳ

Puedes hookear las funciones que quieres monitorear y que al pasar a la función monitoreada te devuelva un mensaje.

Saludos,
Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net


.:UND3R:.

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.


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)