.NET - Ferramentas MSIL - Microsoft Intermediate Language : ILSPY


 Neste artigo vou apresentar a ferramenta open source ILSPY que é um decompilador e analisador de assemblies para a plataforma .NET.

 

A plataforma .NET é um framework que suporta múltiplas linguagens. Isso significa que você pode desenvolver uma aplicação utilizando diferentes linguagens compatíveis com o .NET Framework como C#, VB.Net, F#, Iron Python e muitas outras.
 

No ambiente da plataforma .NET o assembly é a unidade de distribuição para programas e livrarias de classes. Um assembly é apenas um arquivo com a extensão .exe, para programas executáveis, ou  com a extensão .dll, para livraria de classes que residem em uma DLL - Dinamic Link Library.

No assembly, o código reside no formato de uma linguagem intermediária (IL), e como parte da execução do programa, a Common Language Runtime - CLR converte primeiro o programa na Microsoft Intermediate Language - MSIL e, em seguida, converte-o em um conjunto de instruções de máquina usando a Just In-Time-compilador -JIT.

O diagrama a seguir o fluxo durante a compilação e execução de um programa na plataforma .NET

Podemos assim visualizar o código MSIL usando ferramentas gratuitas como ILDASM, ILASM e ILSpy dentre outras.

A Intermediate Language Disassembler - ILDASM é uma ferramenta que é instalada juntamente com o Visual Studio e Windows SDK. Como o nome sugere, ele é usado para desmontar um arquivo executável portátil [.exe / .dll], que contém código MSIL. E eu já abordei a sua utilização em outro artigo.(veja as referências).

 

Neste artigo eu tratar da ferramenta ILSPY que pode ser obtida neste link:  http://ilspy.net/


Recursos usados :

Criando o projeto no VS 2013

A título de estudo vamos criar uma solução contendo um projeto bem simples, estilo Hello World usando a linguagem VB .NET.

Abra o VS Community 2013 e clique em New Project;

A seguir selecione Visual Basic -> Windows Desktop e o template Console Application;

Informe o nome ILSPY_Net e clique no botão OK;

Vamos a seguir criar uma aplicação Console que apenas exibe uma mensagem. Veja abaixo o código do nosso projeto exemplo:

Vamos incluir também uma classe chamada Teste() com seguinte código:

Após compilar o projeto estamos prontos para usar a ferramenta ILSpy.

No local onde você descompactou os arquivos da ILSpy clique duas vezes sobre ILSpy.exe e será aberta a seguinte janela:

Vamos abrir o arquivo do nosso projeto ILSPY_Net que foi compilado. Para isso clique no menu File e a seguir em Abrir ou Open.

Localize a pasta bin/Debug onde você criou o projeto e selecione o arquivo ILSPY_Net.exe :

A seguir, após carregar o arquivo .exe, podemos examinar o seu código conforme a figura a seguir. Note que podemos escolher em linguagem desejamos espiar o código MSIL gerado:

Assim você tem mais uma ferramenta a disposição, se não quiser usar o ILDASM e ILASM nativos da plataforma .NET para decompilar o código de projeto .NET.

Uma dos recursos mais interessantes da ILSpy é que você pode definir pontos de interrupção em assemblies (você tem que compilar o código fonte no modo de depuração).

Bom proveito...

Eu rogo por eles (os seus discípulos); não rogo pelo mundo, mas por aqueles que me deste, porque são teus. (oração de Jesus)
João 17:9

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti