.NETプログラムの逆コンパイラ(ILSpy)

ILSpyはSharpDevelopのチームの逆コンパイルツールです、この目的のためにILSPYオープンソースのツールは、リフレクターを交換することです、それは反射C#のコードよりも優れて逆コンパイルすることができます。

 NETリフレクター2011年2月に終了した無料版を提供しています、それは別のオープンソースプロジェクトILSpyを出産しました。

ILSpyは必要の.NET Framework 4.0のサポートを。

ILSpyとリフレクターの比較:

反射鏡とその種類とツリーコントロール左に示すアセンブリと同様ILSpyインタフェース、右側は対応するソースコードです。基本的なデコンパイル機能、劣らずリフレクター、と比較し、ILSpyと(暗号化するので)アセンブリは、逆コンパイルすることができ、時には反射板とすることはできません逆コンパイル。 

逆コンパイラのデコンパイラ

基礎の種類は、VBをサポートしていませんが、機能はC#とIL言語のソースコードをコンパイル、今のみサポート可能です逆コンパイル。

.NETプログラムの逆コンパイラ(ILSpy)

あなたはアセンブリは、.NET Frameworkのある見つける必要があるときは、メニューファイルオープンGACからでから直接アセンブリを開くために必要なソースコードを表示することができます。

.NETプログラムの逆コンパイラ(ILSpy)0.1

代码保存功能也做得不错,当点击一个类型时,选择File->Save Code会反编译当前的类型并保存到指定的文件中,当选择程序集时,Save Code保存为一个项目(csproj)文件,并且把它所有的类型加到这个项目中。

Debugger 调试器

这里要说的调试器,不是指Visual Studio的源码级别的调试器,而是指程序集的调试器。Reflector有个Addin,可以直接附加在Visual Studio中,调试第三方的类型库,而不需要把第三方的类型库反编译后,以源码的形式添加到项目中。

ILSpy也有这个功能,直接对第三方的程序集进行调试,有两种选项

如果第三方类型库是可执行程序(EXE),可以用Debug an executable来启动这个程序。

如果第三方类型库是程序集(DLL),可以用Attach to running application来附加,以启动程序集的调试。

.NETプログラムの逆コンパイラ(ILSpy)0.2

从上面两张图中已经可以看出它的用法,和调试源代码一样。在需要监视变量值的方法的地方,设置断点,当程序运行到此时,就可以通过监视窗体来观察变量的值。从ILSpy的状态栏中看出,上面的第一张图是正处于调试状态,第二张图,是准备就绪,可以进行调试。

这两者的区别是,Attach to a running application调试时,如果代码经过编译器优化,则监视器会无法得到它的值。

如图所示,无法显示正在调试的变量num的值,因为代码已经经过优化。官方推荐的方式是Debug an executable

与在Visual Studio中调试.NET源代码一样,你可以Step into,Step over,continue,同时状态栏会显示就绪(stand by),运行中(running),正在调试(debugging)。

除了调试程序集的C#/VB形式的代码之外,也可以以IL代码形式调试,如下图所示

この光の中で見ると、それはまだかなり良いILコードのデバッグツールです。学習者のためのツールの後、洞察力を学習するだけでなく、無限の知識の開発であるツールの開発を促進。

デバッガは、プラグインのILSpyがありますされている、必ずプラグインはのILSpy.Debugger含ませます。

我々の理解、デバッグ.NETアセンブリによると、必ずしもPDBファイルができます。しかしILSpyはPDBファイル(ないPDBファイルが生成されない)には至らなかったが、それはASP.NET WebアプリケーションとWebサービスをデバッグすることはできません。 

おすすめ

転載: www.cnblogs.com/zouhao/p/11689838.html