Descompilación desde una dirección
En el menú Herramientas (Tools), existe una función muy útil: Decompilar desde VA (Decompile from VA) (descompilar cualquier código desde la dirección virtual proporcionada). La característica principal de esta función es que no requiere que el archivo a descompilar tenga una estructura correcta y sea procesado mediante el método estándar. Por supuesto, en este caso, el código se descompilará con ciertas limitaciones. Por ejemplo, si las funciones importadas u objetos OLE no han sido pre-procesados, el código será poco informativo en esos puntos.
Para descompilar un fragmento específico de código dentro de un archivo, simplemente debe especificar la dirección virtual de ese código (si hablamos de Native Code o ensamblado .NET), o proporcionar una referencia a la estructura ProcInfo (si hablamos del clásico Visual Basic P-Code). La singularidad de trabajar con tales P-Code es que la estructura ProcInfo contiene un array de datos utilizados por el código. Sin este array, es imposible determinar con qué funciones trabaja el código, a qué cadenas se refiere, y así sucesivamente. En el caso de trabajar con ensamblados .NET, tras introducir la dirección, el descompilador le ofrecerá elegir entre descompilar el código como código intermedio MS IL o desensamblar este código. Esta opción se debe al hecho de que los ensamblados .NET pueden contener tanto código intermedio MS IL (código administrado) como código máquina (llamado código no administrado).
Si el archivo ya está abierto en el descompilador, solo necesita llamar a la función Decompilar desde VA y especificar la dirección para procesar. Si el archivo aún no ha sido abierto, esto se sugerirá automáticamente y el archivo se abrirá en modo simplificado.
La función Decompilar desde VA es particularmente útil cuando el código deseado no se descompila automáticamente o si el archivo está parcialmente dañado, impidiendo que se analice con el procedimiento habitual. Por supuesto, debe entenderse que el resultado de la descompilación en este caso será peor que con una descompilación estándar.
