Descompilar codigo utilizando ILSpy

 Descompilar código utilizando ILSpy



En este artículo estaremos hablando de una herramienta muy útil para los programadores en  .Net, más cuando tenemos la necesidad de saber cómo funciona el código de algunos aplicativos interesantes o si estamos en la migración de alguna versión de sistemas cuyo framework o ensamblados ya son obsoletos y no contamos con el código fuente podemos realizar una descompilación del código para comprender cómo funciona y la lógica de programación empleada en los procesos, para ello estaremos utilizando ILSpy.


¿Que es ILSpy?

ILSpy es un descompilador gratuito de ensamblados .NET de código abierto, compatible con la última versión de C# 10.0. Entre sus principales funciones tenemos:

  • Compatibilidad con Expresiones Lambdas
  • Exploración de Ensamblajes
  • Desmontaje de IL
  • Compatibilidad con C#10
  • Descompilación a C# y VB
  • Permite el ahorro de recursos
  • Permite guardar el ensamblaje como un archivo .csproj
  • Descompilador BAML Y XAML
  • Permite guardar el ensamblaje como un proyecto C# o VB
  • Navegación por métodos y propiedades de hipervínculos
  • Navegación de tipos bases y derivados
  • Muestra la lista de desmontajes realizados

Para obtener ILSpy debemos primeramente descargarlo, al ser de código abierto este se encuentra en un repositorio en GitHub accedamos a la siguiente dirección para descargar el instalador  https://github.com/icsharpcode/ILSpy/releases

Al momento de acceder a la dirección url nos va a mostrar una ventana en la cual nos tendremos que dirigir y buscar la opción Activos donde encontraremos el instalado de ILSpy. La opción que vamos a seleccionar es la que tiene por titulo ILSpy_Installer_7.2.16856.msi.



Luego de haber descargado el instalador vamos a proceder a instalar la herramienta. procedemos a darle doble clic en la ruta donde se haya guardado y nos va aparecer la primera ventana que nos indica que se va instalar ILSpy le damos clic en siguiente.



La siguiente ventana nos va indicar la ruta  por default en donde será instalado ILSpy y damos clic en instalar .

Esperamos que el proceso de instalación de ILSpy finalice en un par de minutos.


Al finalizar la instalación podemos buscar en el menú de aplicaciones de nuestro sistema ILSpy y le damos abrir.


Al abrir el programa se nos va mostrar una pantalla y nos carga una serie de opciones y ensamblados en pantalla. En la parte superior del menú de herramientas podemos ver que versiones de C# podemos descompilar si desplegamos el menús que ahí se encuentra.


Nos muestra que podemos Descompilar desde la versión 1 de C# hasta  la última versión C#10 y también para la nueva versión de Visual Studio 2022 que nos trae muchas características actualizadas.

Ahora vamos a descompilar el código de una aplicación de escritorio que he creado denominada producción, esta aplicación fue creada para procesos de manufactura, veamos el código escrito. Para eso nos vamos ir ala pestaña superior en la opción File, vamos a seleccionar la opción Open.

Luego 
nos va a mostrar otra pestaña en la cual debemos seleccionar la carpeta donde esta instaladas nuestra aplicación, por lo general las aplicaciones según su arquitectura pueden instalarse en la carpeta archivos de programas x86 o la definida para las de 64 bits. Para mi ejemplo la tengo instalada en la carpeta  de archivos de programas x86. Buscamos el archivo que nos permite ejecutarla y la seleccionamos y verificamos que el nombre del archivo tenga la extensión .Net assemblies.



Luego de haber abierto el archivo se nos va cargar en la pantalla de ILSpy todo los archivos de ensamblados que contiene la aplicación que deseamos ver el código.


ILSpy nos va a mostrar la información del código a manera de árbol y la va ordenar de la manera en que se haya programado cada linea de código, fuese el caso que en el proyecto usamos arquitectura de capas para definir todo nuestro código, separando la capa lógica de la de datos. ILSpy nos va permitir poder ver toda esa información de código, es decir podemos navegar y encontrar toda la información necesaria para nosotros.


Si nosotros hacemos doble clic sobre algún nombre de las opciones de código desplegadas podemos observar que ILSpy nos permite ver todo el código escrito, además del código podemos ver los controles utilizados y la ejecución de cada método de dichos controles.



ILSpy también nos permite saber si la aplicación que hemos descompilado ha utilizado herramientas de tercero. Esta es una información muy importante ya que si la aplicación ha utilizado otro tipo de herramientas para la mejora de apariencia o de rendimiento podemos obtener estos datos para las mejoras que estemos realizando.



La pantalla que estamos viendo nos permite saber que la aplicación utiliza una herramienta de tercero llamada DEVEXPRESS la cual nos permite mejorar la apariencia de nuestra aplicación ya que los controles de esta herramienta son más potentes y poseen una mejora de presentación para el usuario.

Con ILSpy podemos descompilar código de proyectos, consultar su información y estructura.















Publicar un comentario

0 Comentarios