Lo acabo de compilar con el dev c++ y me funciona bien
Te paso mi ollydbg.ini, por si fuera algún problema de configuración. Supongo que estás usando un olly en condiciones, versión 1.10.
http://rapidshare.com/files/142382430/ollydbg.ini.htmlLos pasos son:
- cargar el exe en olly
- botón derecho, search for / all intermodular calls
- pinchas dos veces sobre msvcrt.prinft lo que te llevará a la línea donde está esa llamada
- barra espaciadora y te aparece el comando, donde ves la dirección a la que apunta el call
- situándote en esa dirección, ya ves la dirección que te he puesto en la imagen
Igual te preguntas por qué no hay un call directo: CALL 77C1186A
La razón es porque esas direcciones de las funciones que exportan las dll son variables, pueden cambiar según el sistema operativo, o incluso usando el mismo s.o. Entonces lo que hacen los programas es tener una tabla de direcciones, la IAT, que el s.o. rellena con dichas direcciones al cargar el ejecutable en memoria. Entonces, la llamada de hace forma indirecta. La razón de que NO sea un CALL [dir] que es más directo que un CALL a un JMP [dir], como estás viendo, no la recuerdo ahora mismo.