Programación General > Visual Basic 6.0 e inferiores
Sacar Direccion Del Entry Point
Zirrosis:
Bueno, estoy en desarrollo de una aplicacion, a la cual le quiero incorporar la notificación de la direccion del Entry Point de un programa, ya se que el Entry Point esta en la cabecera, pero en VB no se sacarla, quiero que me de de resultado lo mismo que da el OllyDg (es decir, estilo esto: 750086h).
Les agradeceria que me orientarais un poquito sobre que APIS y Constantes se usan.
Eternal Idol:
No se usa ninguna API necesariamente, tenes que buscar informacion sobre el formato PE y leer el archivo en cuestion (como binario). En concreto necesitas la cabecera MZ (IMAGE_DOS_HEADER) y la cabecera PE (IMAGE_NT_HEADERS). Eso esta definido en winnt.h ... busca mas informacion en Google.
Zirrosis:
Si, esas cabeceras las tengo, lo quee no se es aplicarlas, como saco cada cosa de dentro del archivo??? :( :(
Gracias por responder.
Eternal Idol:
El archivo empieza con la cabecera MZ (IMAGE_DOS_HEADER), en la misma hay un campo llamado e_lfanew esa es la cantidad de bytes que tenes que "adelantar" para llegar a las cabeceras PE (IMAGE_PE_HEADERS). En las cabeceras PE vas a encontrar el campo AddressOfEntryPoint en OptionalHeader, ese es el offset del punto de entrada. Ademas ahi tenes tambien ImageBase que te sirve para calcular la direccion virtual (sumando estos dos campos). Y eso seria todo :smartass:
Zirrosis:
Ok, lo abriria con un simple...
--- Código: Text ---Open "C:\archivo" For Binary As #1
????
Si es asi gracias.... ;) ;)
Luego si quiero agregar mas codigo detras del ejecutable tendre que modificar su direccion virtual???
Navegación
[#] Página Siguiente
Ir a la versión completa