Hola
Podria alguien decirme como puedo encontrar el punto de entrada en
un programa hecho en VB6.0 ya que veo que este tiene un tipo de inicializacion
lo que quiero es desde donde empieza el codigo real tanto si tiene formulario o
si es de solo un modulo, gracias!
El código real comienza el el Entry Point.
arrastra el ejecutable a el OllyDbg y donde comienza ese es el Entry Point.
Cita de: Danyfirex en 10 Agosto 2013, 02:38 AM
El código real comienza el el Entry Point.
arrastra el ejecutable a el OllyDbg y donde comienza ese es el Entry Point.
Me refiero al inicio del form_load donde nosotros normalmente empezamos a
codificar no al punto de entrada de la imagen PE, ya que ejecutable VB inicializan muchos
datos y un posible formulario entre otras cosas.
deberás leer los faq, claramente cada uno de los form dependerá de que tipo de vb tenemos
te sugiero comenzar con vbdecompiler o bien smartcheck para que tengas claro donde y que modificar, pero antes de eso deberás leer hay 2 tipos uno nativo y otro p-code y conocer ambos.
pd:en los escritos de ricardo explora el p-code y en escritos de coco tienes bastante base para comenzar.
saludos Apuromafo
PUedes analizar también las subrutinas e intentar encontrar dónde se inicializa. Tienes programas como:
http://www.vb-decompiler.org/download.htm (http://www.vb-decompiler.org/download.htm)
http://www.woodmann.com/collaborative/tools/index.php/P32DASM (http://www.woodmann.com/collaborative/tools/index.php/P32DASM)
que te ayudarán...
¡Suerte! y nos cuentas qué tal te fue...
Si inicias el OllyDbg al inicio encontrarás seleccionado el punto de entrada Main. En VB Decompiler PRO no sale ese método, para ello copia el VA y lo pones en "Tools>Decompile from VA". Te irá al método principal. Luego, si es una aplicación de formularios verás que se asigna el formulario principal como alguno en los que salgan en la lista.
Saludos!
LordCoder // REiS
Mas alla de lo dicho, el EP de un programa VB es algo asi:
PUSH CONST
CALL ThunRTMain
Donde CONST es la direccion de una estructura que no esta documentada oficialmente, pero que suele llamarse VBHeader.
Una primera aproximacion a dicha estructura, la encuentras descripta en un script IDC (para IDA) de Reginal Wong.
Si bien la estructura no esta completa, te recomiendo mirarlo para entender un poco la cosa...
Saludos!
PD: Los siguientes 3, me ayudaron a entender como funciona toda la cosa y a crear scripts para Olly que hacen la tarea mas sencilla:
1) Disassembling Visual Basic Applications por Sanchit Karve
2) Visual Basic Image Internal Structure Format por Alex Ionescu
3) Visual Basic Reversed - A decompiling approach por AndreaGeddon
Sólo debes buscar... :P