Wednesday, October 17, 2007

monodis: Desensamblar aplicacion o libreria de Mono

Entre las herramientas de Mono podemos encontrar la utilidad "monodis"(analoga a la herramienta de Microsoft .NET Framework 'ildasm') que nos funcionara para desensamblar el codigo IL compilado en un ensamblado, ya sea .dll o .exe. ¿Que finalidad tiene ver el codigo IL generado por el compilador? Pues es vital para los desarrolladores de compiladores, util para robar codigo:O o interesante para los curiosos;) Vamos a probarlo! ¿Que vamos a hacer? Crear un archivo de codigo fuente sencillo(main.cs), compilarlo con el compilador de mono 1.1(mcs) y finalmente desensamblarlo con la utilidad monodis. Abrimos una Terminal de Linux o una Consola y ejecutemos los siguientes pasos: Creamos archivo de ejemplo: echo "using System; class MainC{ static void Main(){ Console.WriteLine(\"Saludos\"); } }" > main.cs Compilamos: mcs -out:main.exe main.cs Ejecutamos para probar el compilado: mono main.exe Desensamblamos: monodis --output=main.exe.il main.exe Eso nos ha generado nuestro archivo de codigo fuente IL y ahora vamos a imprimirlo completo en la consola: cat main.exe.il Estos pasos permiten guardar el codigo IL en un archivo pero no es necesario guardar el codigo en un archivo para inspeccionar el desensamblado, con simplemente ejecutar "$monodis nombre-enamblado" ya nos imprimira el codigo IL. Ejemplo: monodis main.exe El resultado tanto del comando anterior como del archivo main.exe.il deberia ser algo parecido al siguiente archivo descargable: main.exe.il Listo! Estoy preparando una manual practico para entender IL, en los proximos dias lo estare publicando. Saludos!

No comments: