几年前,我为客户端编写了一个c#应用程序,但现在我已经没有源代码了。我所拥有的只是在客户端PC上部署的EXE。是否有一种方法可以从EXE生成c#源代码?
当前回答
Reflector在一般情况下不再是免费的,但他们确实向开源开发人员免费提供了它:http://reflectorblog.red-gate.com/2013/07/open-source/
但DevExtras和JetBrains等公司已经创建了免费的替代方案:
DevExtras CodeReflect
JetBrains DotPeek
其他回答
反射器和它的插件FileDisassembler。
反射器将允许查看源代码。FileDisassembler将允许您将其转换为VS解决方案。
Denis Bauer的Reflector和File Disassembler插件。它实际上从程序集生成源项目,其中Reflector本身只显示被分解的源。
我最近最喜欢的是JetBrains的dotPeek。
当Red Gate说。net Reflector将不再有免费版本时,我开始使用ILSpy和Telerik的JustDecompile。我发现ILSpy的反编译比JustDecompile(仍处于测试阶段)更准确。Red Gate已经改变了他们的决定,仍然有一个免费版本的。net Reflector,但现在我喜欢ILSpy。
来自ILSpy网站(https://github.com/icsharpcode/ILSpy/):)
ILSpy是开源的。net汇编浏览器和反编译器。
ILSpy特性
组装浏览 IL拆卸 反编译到c# 支持lambdas和“yield return” 显示XML文档 节约资源 搜索类型/方法/属性(子字符串) 基于超链接的类型/方法/属性导航 基/派生类型导航 导航历史 BAML到XAML反编译器 将程序集保存为c#项目 查找字段/方法的用法 可通过插件扩展(MEF)
更新:
2012年4月15日,ILSpy 2.0发布。与1.0版相比的新特性:
程序集列表 支持反编译表达式树 对可空对象的提升操作符的支持 反编译到Visual Basic 搜索以空格分隔的多个字符串(在ILSpy.exe中搜索“Assembly manager”会找到AssemblyListManager) 单击某个局部变量将突出显示该变量的所有其他出现情况 可以使用Ctrl+F在反编译代码视图中进行搜索
更新:
ILSpy 2.1支持异步/等待反编译
我很惊讶没有人提到dnSpy。dnSpy是一个调试器和。net汇编编辑器。即使没有任何可用的源代码,也可以使用它编辑和调试程序集。
主要特点:
调试。net和Unity程序集 编辑.NET和Unity程序集 明暗主题
它是开源的,是dot net应用最广泛的逆向工程工具之一。
你需要反射器。
推荐文章
- 何时使用IList,何时使用List
- ConfigurationManager。AppSettings在.NET Core 2.0中可用?
- 在c#的控制台应用程序中使用'async
- 在单元测试中设置HttpContext.Current.Session
- 如何开始开发Internet Explorer扩展?
- 更新行,如果它存在,否则插入逻辑实体框架
- 在什么情况下SqlConnection会自动被征召到环境事务范围事务中?
- 用c#解析JSON
- Windows窗体中的标签的换行
- 为什么在c#中使用finally ?
- 为什么不是字符串。空一个常数?
- 为什么我不能在c#中有抽象静态方法?
- Nuget连接尝试失败“无法为源加载服务索引”
- net HttpClient。如何POST字符串值?
- 我如何使一个方法的返回类型泛型?