Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Rvck en 10 Agosto 2013, 01:10 am



Título: Entry point en VB apps
Publicado por: Rvck en 10 Agosto 2013, 01:10 am
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!


Título: Re: Entry point en VB apps
Publicado por: 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.


Título: Re: Entry point en VB apps
Publicado por: Rvck en 10 Agosto 2013, 02:55 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.


Título: Re: Entry point en VB apps
Publicado por: apuromafo CLS en 10 Agosto 2013, 04:02 am
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


Título: Re: Entry point en VB apps
Publicado por: karmany en 10 Agosto 2013, 10:51 am
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...


Título: Re: Entry point en VB apps
Publicado por: LordCoder en 16 Agosto 2013, 15:39 pm
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


Título: Re: Entry point en VB apps
Publicado por: MCKSys Argentina en 16 Agosto 2013, 21:06 pm
Mas alla de lo dicho, el EP de un programa VB es algo asi:

Código:
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