几年前,我为客户端编写了一个c#应用程序,但现在我已经没有源代码了。我所拥有的只是在客户端PC上部署的EXE。是否有一种方法可以从EXE生成c#源代码?
当前回答
Reflector在一般情况下不再是免费的,但他们确实向开源开发人员免费提供了它:http://reflectorblog.red-gate.com/2013/07/open-source/
但DevExtras和JetBrains等公司已经创建了免费的替代方案:
DevExtras CodeReflect
JetBrains DotPeek
其他回答
现在有各种各样的。net / c#反编译器可用(2022):
ILSpy for everyone[免费OSS c# IL多平台] dotPeek for方便的反编译[免费c# IL] dnSpy为专家,安全和黑客[免费OSS c# VB IL] JustDecompile for everyone[免费OSS c# VB IL](继续为CodemerxDecompile) IldAsm for nostalgia[免费IL] .NET历史反射器[商业不支持c# VB IL MC++]
我更喜欢ILSpy,因为它是免费的,OSS,非常快(与其他软件相比),维护得很好,甚至被Visual Studio使用,反编译的代码是准确的。这篇博文在。net反编译器的丛林中详细解释了所有这些。net反编译器。
Telerik JustDecompile是免费的,有一个从。net程序集创建项目的特性。
我很惊讶居然没人提到微软的“伊达姆”。它可能不像ILSpy或Reflector那样漂亮,但它随Visual Studio一起提供,因此许多开发人员已经拥有它。
要运行它(假设VS 2013,其他版本应该类似):
选择“开始>所有程序> Visual Studio 2013 > Visual Studio Tools”。 双击VS2013的开发人员命令提示符。 在生成的命令提示符中运行"ildasm"。 在工具中,选择文件>打开并打开可执行文件或DLL。
现在可以导航DLL结构了。双击类成员查看IL。使用File > Dump将IL导出到一个文件。
Reflector在一般情况下不再是免费的,但他们确实向开源开发人员免费提供了它:http://reflectorblog.red-gate.com/2013/07/open-source/
但DevExtras和JetBrains等公司已经创建了免费的替代方案:
DevExtras CodeReflect
JetBrains DotPeek
Denis Bauer的Reflector和File Disassembler插件。它实际上从程序集生成源项目,其中Reflector本身只显示被分解的源。
我最近最喜欢的是JetBrains的dotPeek。
推荐文章
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 是否可以将已编译的.pyc文件反编译为.py文件?
- 组合框:向项目添加文本和值(无绑定源)
- AutoMapper:“忽略剩下的?”
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?
- 为什么更快地检查字典是否包含键,而不是捕捉异常,以防它不?
- [DataContract]的命名空间
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 完全外部连接
- 如何使用。net 4运行时运行PowerShell ?
- 在foreach循环中编辑字典值