几年前,我为客户端编写了一个c#应用程序,但现在我已经没有源代码了。我所拥有的只是在客户端PC上部署的EXE。是否有一种方法可以从EXE生成c#源代码?
当前回答
你需要反射器。
其他回答
反射器和它的插件FileDisassembler。
反射器将允许查看源代码。FileDisassembler将允许您将其转换为VS解决方案。
你需要反射器。
我很惊讶居然没人提到微软的“伊达姆”。它可能不像ILSpy或Reflector那样漂亮,但它随Visual Studio一起提供,因此许多开发人员已经拥有它。
要运行它(假设VS 2013,其他版本应该类似):
选择“开始>所有程序> Visual Studio 2013 > Visual Studio Tools”。 双击VS2013的开发人员命令提示符。 在生成的命令提示符中运行"ildasm"。 在工具中,选择文件>打开并打开可执行文件或DLL。
现在可以导航DLL结构了。双击类成员查看IL。使用File > Dump将IL导出到一个文件。
现在有各种各样的。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反编译器。
我很惊讶没有人提到dnSpy。dnSpy是一个调试器和。net汇编编辑器。即使没有任何可用的源代码,也可以使用它编辑和调试程序集。
主要特点:
调试。net和Unity程序集 编辑.NET和Unity程序集 明暗主题
它是开源的,是dot net应用最广泛的逆向工程工具之一。
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- MSBuild路径
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何处理AccessViolationException