Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: x64core en 9 Noviembre 2013, 23:36 pm



Título: VB6 - estructura interna modificada
Publicado por: x64core en 9 Noviembre 2013, 23:36 pm
Chicos lo han notado? la structura de la cabecera de los archivos VB5/6 ha cambiado:

00401288  56 42 35 21 36 26 2A 00 00 00 00 00 00 00 00 00  VB5!6&*.........
00401298  00 00 00 00 7E 00 00 00 00 00 00 00 00 00 00 00  ....~...........
004012A8  00 00 0A 00 09 04 00 00 00 00 00 00 00 00 00 00  ...............
004012B8  30 16 40 00 00 F0 30 00 00 FF FF FF 08 00 00 00  0@..ð0..ÿÿÿ...
004012C8  01 00 00 00 01 00 00 00 E9 00 00 00 38 12 40 00  ......é...8@.
004012D8  38 12 40 00 58 11 40 00 78 00 00 00 82 00 00 00  8@.X@.x...‚...
004012E8  8B 00 00 00 8C 00 00 00 00 00 00 00 00 00 00 00  ‹...Œ...........
004012F8  00 00 00 00 00 00 00 00 50 72 6F 6A 65 63 74 31  ........Project1

No sé desde cuando pero hoy estaba reverseando un malware en VB y el script para encontrar el punto de entrada me estaba fallando.

agregado:
O talvez es error mio y alguno puede decir que pasa, aunque incluso compile un hello world desde un recien instalado VB6 y los offsets a cero




Título: Re: VB6 - estructura interna modificada
Publicado por: MCKSys Argentina en 10 Noviembre 2013, 17:48 pm
Citar
Chicos lo han notado? la structura de la cabecera de los archivos VB5/6 ha cambiado:

00401288  56 42 35 21 36 26 2A 00 00 00 00 00 00 00 00 00  VB5!6&*.........
00401298  00 00 00 00 7E 00 00 00 00 00 00 00 00 00 00 00  ....~...........
004012A8  00 00 0A 00 09 04 00 00 00 00 00 00 00 00 00 00  ...............
004012B8  30 16 40 00 00 F0 30 00 00 FF FF FF 08 00 00 00  0@..ð0..ÿÿÿ...
004012C8  01 00 00 00 01 00 00 00 E9 00 00 00 38 12 40 00  ......é...8@.
004012D8  38 12 40 00 58 11 40 00 78 00 00 00 82 00 00 00  8@.X@.x...‚...
004012E8  8B 00 00 00 8C 00 00 00 00 00 00 00 00 00 00 00  ‹...Œ...........
004012F8  00 00 00 00 00 00 00 00 50 72 6F 6A 65 63 74 31  ........Project1

No sé desde cuando pero hoy estaba reverseando un malware en VB y el script para encontrar el punto de entrada me estaba fallando.

agregado:
O talvez es error mio y alguno puede decir que pasa, aunque incluso compile un hello world desde un recien instalado VB6 y los offsets a cero

Mmmm, es muy raro que lo hayan hecho...

A ver, los VB (4, 5 y 6) pueden comienzar de 2 formas distintas: Desde el Sub Main, o desde el primer form que se cargue.

Si el proggie comienza con el submain, entonces la direccion de inicio esta en el VBHeader.

Si ese valor esta en 0, entonces comienza con un form.

Para saber qué se ejecuta primero, puedes poner un bp en el punto magico del runtime y listo.

Tambien puedes usar la GUITable para saber que form se ejecuta primero, buscarle los eventos usando el dsecriptor y asi, sacarle la tabla de eventos.

Saludos!


Título: Re: VB6 - estructura interna modificada
Publicado por: x64core en 10 Noviembre 2013, 23:54 pm
Mmmm, es muy raro que lo hayan hecho...

A ver, los VB (4, 5 y 6) pueden comienzar de 2 formas distintas: Desde el Sub Main, o desde el primer form que se cargue.

Si el proggie comienza con el submain, entonces la direccion de inicio esta en el VBHeader.

Si ese valor esta en 0, entonces comienza con un form.

Para saber qué se ejecuta primero, puedes poner un bp en el punto magico del runtime y listo.

Tambien puedes usar la GUITable para saber que form se ejecuta primero, buscarle los eventos usando el dsecriptor y asi, sacarle la tabla de eventos.

Saludos!
Bien, gracias por aclarar eso acerca de VB eso es porque yo solo reverseo malware que normalmente no requiere de form o no los agregan,etc. simplemente pensé que era ridiculo una actialización para VB5/6 despues de milenios, no encontraba una forma
de explicar esto.