JetBrains dotPeek

JetBrains dotPeek

免费的.NET反编译与程序集浏览器

开发官网

应用介绍

接手一个老项目,某个第三方 DLL 没有源码也没有文档,调用它的方法参数含义全靠猜;或者线上抛了个异常,堆栈指向依赖库内部,你想看看那一行到底做了什么。dotPeek 就是干这个的——把 .NET 程序集反编译回可读的 C# 代码,dll、exe、winmd、nupkg 甚至 zip 里的程序集都能直接打开来看。

它是 JetBrains 出的免费工具,界面和导航沿用了 ReSharper 那一套:程序集浏览器里按命名空间和类型逐层展开,能查找用法、跳转到声明、看基类和派生类的层次结构,也能在反编译出来的代码里继续搜索。除了看代码,还能导出反编译结果为 Visual Studio 项目,或者把它当作符号服务器,让 Visual Studio 在调试第三方库时直接单步进反编译出来的源码。

除了 C#,也能显示原始 IL、IL 与 C# 对照,以及低级别的元数据视图(PE 头、表、字符串堆),排查混淆或者编译器生成代码时用得上。完全免费。

软件功能



反编译成 C#:把 .NET 程序集还原成可读的 C# 代码,支持不同的语言版本级别,现代语法特性(async/await、lambda、模式匹配等)都能正确还原。

多种格式:可以打开 dll、exe、winmd、nupkg、vsix 以及压缩包里的程序集,不用先解压再找文件。

程序集浏览器:按程序集、命名空间、类型逐层展开,引用关系一并列出,结构关系比翻文件清楚。

ReSharper 式导航:查找用法、跳转到声明、查看类型层次和继承关系,在反编译代码里的导航体验和在自己的源码里基本一致。

导出为项目:反编译结果可以导出成 Visual Studio 项目,拿去编译、修改或者作为参考都方便。

符号服务器:dotPeek 可以作为符号服务器运行,Visual Studio 调试时会向它请求符号,从而直接单步进第三方库的反编译源码。

IL 与元数据视图:除了 C#,还能看原始 IL、IL 与 C# 对照视图,以及 PE 头、元数据表、字符串堆这类低级别结构。

进程浏览器:可以查看正在运行的 .NET 进程加载了哪些程序集,直接从进程里打开它们。

免费:JetBrains 免费提供,不需要许可证,也可作为 dotUltimate 套件的一部分使用。

应用截图