Título: Dudas respecto a P-Code de Visual Basic 5/6 Publicado por: ReverseCappuccino 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 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 Título: Re: Dudas respecto a P-Code de Visual Basic 5/6 Publicado por: MCKSys Argentina 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 (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! Título: Re: Dudas respecto a P-Code de Visual Basic 5/6 Publicado por: ReverseCappuccino 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 (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. Título: Re: Dudas respecto a P-Code de Visual Basic 5/6 Publicado por: MCKSys Argentina en 9 Febrero 2022, 20:38 pm No hay un estandar en los opcodes. La mayoría salieron de VBDec (http://sandsprite.com/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 (https://github.com/VBGAMER45/Semi-VB-Decompiler/tree/master/Semi%20VB%20Decompiler) |