Entry point en VB apps

Iniciado por Rvck, 10 Agosto 2013, 01:10 AM

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

Rvck

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!

Danyfirex

El código real comienza el el Entry Point.

arrastra el ejecutable a el OllyDbg y donde comienza ese es el Entry Point.

Rvck

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.

apuromafo CLS

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

karmany

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.woodmann.com/collaborative/tools/index.php/P32DASM

que te ayudarán...
¡Suerte! y nos cuentas qué tal te fue...

LordCoder

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

MCKSys Argentina

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

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