elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Dudas respecto a P-Code de Visual Basic 5/6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas respecto a P-Code de Visual Basic 5/6  (Leído 5,739 veces)
ReverseCappuccino

Desconectado Desconectado

Mensajes: 2


Fiat iustitia, et pereat mundus.


Ver Perfil
Dudas respecto a P-Code de Visual Basic 5/6
« en: 9 Febrero 2022, 18:06 pm »

Buenas tardes gente!

Estoy haciendo reversing a un malware (Worm:Win32/SillyShareCopy.E) que está escrito en Visual Basic pero, como ya tiene sus años, me está dando problemillas el tema del P-Code.

Estuve mirando en internet y encontré el clásico VB Decompiler, y me hice con la versión Pro por métodos poco ortodoxos  :silbar:.

La cosa es que tras deofuscar, leer y documentar el código resultante en buena manera, sigo teniendo algunas dudas en relación a algunas instrucciones que he visto (sin contar variables referenciadas sin inicializar por aquí y por allá) y, como la documentación escasea, he venido hasta estas tierras lejanas de internet en busca de sabiduría de profesionales (o gente que sepa algo más que yo  ;D)


La primera duda que tengo es que no sé exactamente qué es Me.Global.App
Mi teoría es que Me representa el contexto actual del programa (algo así como el this de javascript), que Global es una subclase y que App representa de alguna manera la aplicación, la venana o al menos algo relacionado.
(Perdón si meto la pata, llevo la POO bastante floja  :-\ )

Aquí dejo un pequeño extracto de código y un enlace a PasteBin con la función entera:

Código:
  loc_404082: startup_path = funct1(0) & "\" ' Get the Startup folder path
  loc_4040A2: ao_path = startup_path & "Adobe Online" & ".com" 'Variant. Name of the first copy
  loc_4040BE: au_path = startup_path & "Adobe update" & ".com" 'Variant. Name of the second copy
  loc_4040D1: var_118 = Me.Global.App ' <----- AQUI

  loc_4040E1: original_name = CVar(App.EXEName) 'String
  loc_4040E7: Thumbs   .db.address_80000210
  loc_4040F4: copy1_name = "Adobe Online"
  loc_4040FD: Thumbs   .db.address_80000210

PasteBin: https://pastebin.com/iWZ1cpD2



Mi segunda duda es qué hacen un par de opcodes, que son:
  - ILdRfDarg
  - FStVar



¡Gracias por adelantado! Por favor comentadme también las cosas que no os cuadren, estamos para aprender  ;D.
Citar
Un saludo, Coffee
En línea

PS C:\Windows\System32\> whoami
winreaper\coffee
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Dudas respecto a P-Code de Visual Basic 5/6
« Respuesta #1 en: 9 Febrero 2022, 19:07 pm »

Hola!

En mi experiencia, la conversión que hace VBDecompiler de P-CODE no es siempre exacta. Muestra mucha basura en el decompilado.

Ese "Me.Global.App" puede ser que haya interpretado que está haciendo referencia al objeto App de VB6 (https://www.visualbasicplanet.info/upgrading-visual-basic/upgrading-the-app-object.html)

Con respecto a los opcodes: Sólo lo creadores de VBDecompiler saben qué son esos.
Puedes tocar las opciones de decompilado para que muestre más info y quizás así, puedas determinar qué es cada cosa.

Saludos!
En línea

MCKSys Argentina

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

ReverseCappuccino

Desconectado Desconectado

Mensajes: 2


Fiat iustitia, et pereat mundus.


Ver Perfil
Re: Dudas respecto a P-Code de Visual Basic 5/6
« Respuesta #2 en: 9 Febrero 2022, 20:15 pm »

Hola!

En mi experiencia, la conversión que hace VBDecompiler de P-CODE no es siempre exacta. Muestra mucha basura en el decompilado.

Ese "Me.Global.App" puede ser que haya interpretado que está haciendo referencia al objeto App de VB6 (https://www.visualbasicplanet.info/upgrading-visual-basic/upgrading-the-app-object.html)

Con respecto a los opcodes: Sólo lo creadores de VBDecompiler saben qué son esos.
Puedes tocar las opciones de decompilado para que muestre más info y quizás así, puedas determinar qué es cada cosa.

Saludos!

Gracias por la info!

Sí que me he fijado que crea una gran cantidad de artefactos. Tengo que guiarme a través de suposiciones e hipótesis con el desensamblador para poder entender bien el código.

Sobre los opcodes, pensaba que era un estándar por la gran cantidad de páginas que tienen los opcodes indexados.

Un saludo, Coffee.
En línea

PS C:\Windows\System32\> whoami
winreaper\coffee
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Dudas respecto a P-Code de Visual Basic 5/6
« Respuesta #3 en: 9 Febrero 2022, 20:38 pm »

No hay un estandar en los opcodes. La mayoría salieron de VBDec (http://sandsprite.com/vbdec/) y los de VBDecompiler lo mejoraron.

Creo que el resultado obtenido es por las optimizaciones del compilador. Si no las hubiera, el decompilado sería mucho más sencillo.

En su momento, me puse a hacer el análisis del P-CODE de VBA y resultó ser bastante similar al de VB6, pero hay cosas que no matchean...

Saludos!

PS: revisa https://github.com/VBGAMER45/Semi-VB-Decompiler/tree/master/Semi%20VB%20Decompiler
En línea

MCKSys Argentina

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines