ILSPY 是一款强大的开源 .NET 反编译工具,帮助开发者和安全研究人员深入了解 .NET 程序集的内部结构和逻辑。它提供了深入研究代码实现、学习代码逻辑、进行安全审计等多重功能,支持多种 .NET 语言,包括 C#、VB.NET 和 F#。作为完全开源的工具,ILSPY 鼓励用户自由使用、修改和贡献代码,为 .NET 社区提供了一个重要的资源。无论您是开发者还是安全研究人员,ILSPY 将成为您深入探索 .NET 世界、解密代码奥秘的得力助手。
ILSPY怎么用?
ILSpy的界面与Reflector相似,左边以树型控件显示程序集和它的类型,右边是对应的源代码。基础的反编译功能,与Reflector相比,丝毫不差,甚至有时候用Reflector无法反编译(因为加密)的程序集,用ILSpy可以反编译。
1、Decompiler 反编译器
基础的类型反编译功能都具备,现在只支持把源代码反编译为C#和IL语言,不支持VB。

当需要找的程序集是。NET框架时,可以直接从菜单File—Open from GAC中打开需要查看源码的程序集。

代码保存功能也做得不错,当点击一个类型时,选择File->Save Code会反编译当前的类型并保存到指定的文件中,当选择程序集时,Save Code保存为一个项目(csproj)文件,并且把它所有的类型加到这个项目中。
2、Debugger 调试器
这里要说的调试器,不是指Visual Studio的源码级别的调试器,而是指程序集的调试器。Reflector有个Addin,可以直接附加在Visual Studio中,调试第三方的类型库,而不需要把第三方的类型库反编译后,以源码的形式添加到项目中。
ILSpy也有这个功能,直接对第三方的程序集进行调试,有两种选项
如果第三方类型库是可执行程序(EXE),可以用Debug an executable来启动这个程序。
如果第三方类型库是程序集(DLL),可以用Attach to running application来附加,以启动程序集的调试。

从上面两张图中已经可以看出它的用法,和调试源代码一样。在需要监视变量值的方法的地方,设置断点,当程序运行到此时,就可以通过监视窗体来观察变量的值。从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代码的工具。工具可以促进学习的效果,学习领悟之后,又可以推进工具的发展,这就是知识的无止境的发展。
根据我们的理解,调试。NET程序集一定需要PDB文件才可以。然而ILSpy却没有产生PDB文件(no PDB files are generated),而且它不可以调试ASP.NET Web application和Web 服务。
这其中的原理,不甚明白。compiler/debugger一直是我喜爱的技术主题,但学识肤浅,无法分享。
Reflector会检测到系统时间超过了它预设的时间,如果不升级,它会主动删除自己,从你的电脑中out掉。如果你对此很烦恼,那就让它out吧,你可以有另一个选择,试试ILSpy,或许会带来一丝的惊喜。
软件功能
1、强大的反编译能力
能够将 .NET 程序集中的中间语言(IL)代码转换为易读的源代码,帮助您深入了解程序的工作原理和逻辑。
2、多语言支持
支持多种 .NET 语言,包括 C#、VB.NET 和 F#,使您可以针对不同语言的程序集进行反编译和分析。
3、友好的界面
提供直观友好的用户界面,让您轻松加载和浏览程序集,查看源代码、类型、方法等信息。
软件特色
1、代码导航
您可以快速导航至特定的类、方法和成员,快速定位并分析关键代码片段。
2、代码搜索
支持关键字搜索,帮助您快速定位特定功能或逻辑在程序集中的实现。
3、扩展支持
可以通过插件进行扩展,您可以根据需要添加新的功能和分析工具。
4、开源免费
是完全开源的工具,您可以免费使用、定制和贡献,为 .NET 社区做出贡献。
更新日志
v10.0.0.8330版本
修复了错误地应用于此的问题
更新 TransformCollectionAndObjectInitializers 以检查仅限 init 的属性
修复解决方案路径包含空格时 PowerShell PostBuild 失败的问题
将 FileVersionInfo.GetVersionInfo 替换为 DecompilerVersionInfo.Version 常量
渲染操作系统名称以及体系结构(如果存在)
跨平台端口的重构
上一篇:Node js正式版
下一篇:最后一页


OneBlack
驱动人生10
新氧医美
汇彩网彩票
360解压缩软件2023
WPS Office 2019免费办公软件
QQ浏览器2023 v11.5绿色版精简版(去广告纯净版)
下载酷我音乐盒2023
酷狗音乐播放器|酷狗音乐下载安装 V2023官方版
360驱动大师离线版|360驱动大师网卡版官方下载 v2023
【360极速浏览器】 360浏览器极速版(360急速浏览器) V2023正式版
【360浏览器】360安全浏览器下载 官方免费版2023 v14.1.1012.0
【优酷下载】优酷播放器_优酷客户端 2019官方最新版
腾讯视频播放器2023官方版
【下载爱奇艺播放器】爱奇艺视频播放器电脑版 2022官方版