Decompilador de VB6

Posted by in Visual Basic y VBA

Para completar todo lo que hemos visto en las últimas entradas sobre #VB6, concluimos trabajando sobre decompiladores.

Decompiladores, complicado en VB6

Una de las características que es dificil de encontrar para los que trabajan con #VB6 es un decompilador, esto es, recuperar el código fuente de un ejecutable.

En otros lenguajes, como Python, está más extendido, pero en VB6 es más complicado.

Sin embargo, gracias a una entrada en que ya no está disponible, conocí un compilador para VB, y que yo me lo he descargado de aquí, y lo he probado.

Probando el decompilador de VB6

La instalación del software es bastante sencilla: siguiente, siguiente, siguiente, fin. Nada complicado.

Para probar el decompilador vamos a utilizar el ejecutable que hemos hecho de nuestro software de Cuotas a Porcentajes.

Decompilador VB6

Decompilador VB6

El resultado me ha sorprendido: es capaz de «destripar» todos los archivos incluidos, y si bien me sorprendió que extrayera todas las subrutinas y funciones, el código no era muy «legible».

En concreto, vamos a ver lo que aparece en la rutina Calculo:

Decompilar VB6

Decompilar VB6

Desconozco el significado de esos códigos, que parecen código máquina, y además, no tengo tiempo de investigar, pero sí quiero exponer la experimentación de este decompilador con una aplicación de la que se ha descrito su código.

¿esto es lo máximo que puedo ver? ¿no puedo ver el código fuente?

La realidad es que si a partir de un ejecutable pretendemos extraer el código fuente, la realidad es que es IMPOSIBLE. Es una de las cosas que, en mi opinión, Microsoft ha hecho bien (otros pensarán que no), pero hay tanto desarrollado en VB6 que facilitar la vida a decompiladores arruinaría más de una empresa de software.

Posiblemente, el usuario se sienta frustrado por la «decompilación» de un ejecutable, pero al menos, da una orientación de cómo está programado, los archivos y clases que ha utilizado, nombres de variables, …

Un saludo, y espero os sirva.