VB6 - estructura interna modificada

Iniciado por x64core, 9 Noviembre 2013, 23:36 PM

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

x64core

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



MCKSys Argentina

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

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


x64core

Cita de: MCKSys Argentina en 10 Noviembre 2013, 17:48 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.