dotPeek功能

将.NET程序集反编译为C#或IL

dotPeek可以将任何.NET程序集反编译为等效的C#代码,并可以选择显示基础的IL代码。

dotPeek UI概述

库,可执行文件

dotPeek可以使用多种格式,例如库( .dll ),可执行文件( .exe )和元数据文件( .winmd )。

dotPeek还可以反编译.baml文件,使您能够重构XAML UI定义。

除了传统的程序集和可执行文件之外,您还可以具有dotPeek打开的存档( .zip.vsix.nupkg )和文件夹。您还可以从任何联机包源中查找和加载NuGet包(及其依赖项),或加载Visual Studio项目中packages.config文件中列出的

查看源代码(如果有)

查看源代码(如果有)

反编译的代码总比没有好,但是有时您可以将程序集与其源代码进行匹配,那么为什么不利用它呢?dotPeek可以基于PDB文件识别本地源代码 ,或者诸如Microsoft Reference Source CenterSymbolSource.org之类的源服务器中获取源代码 。而且,dotPeek可以生成PDB文件。

使用菜单栏中的导航模式下拉菜单选择是只希望dotPeek反编译程序集,还是尝试查找源代码(如果可能)。

显示编译器生成的代码

显示或隐藏编译器生成的代码

您可以选择显示某些编译器转换,从而使dotPeek显示的代码结构与编译器将其转换为非常相似。这有助于了解编译器如何处理lambda,闭包和自动属性等。

dotPeek中的Process Explorer窗口

探索正在运行的流程

进程资源管理器”窗口显示所有当前正在运行的进程的列表,并允许浏览它们的模块并反编译其中的.NET程序集。您可以选择显示或隐藏本机流程和模块,或打开流程层次结构视图。

筛选列表以查找所需的模块或过程,然后将其程序集添加到Assembly Explorer中以进行进一步调查。

dotPeek中的IL代码查看器

在单独的视图中查看IL代码

每当您想比源代码更深入时,都可以从反编译的C#中的任意位置导航到IL代码。

最简单的方法是在与主代码查看器同步的单独工具窗口中显示IL代码。

IL代码显示为对C#代码的注释

查看IL代码作为反编译的C#的注释

或者,您可以选择将IL代码显示为反编译的C#代码的注释,从而有效地将其默认文本查看器和通常单独的IL Viewer窗口合并到一个视图中。

dotPeek可以显示反编译代码和从符号文件复制的源代码的IL代码。

dotPeek中的深色主题

使用您喜欢的颜色主题

dotPeek支持与Visual Studio相同的颜色主题集。

例如,您可以选择“蓝色”或“深色”主题,或选择将配色方案首选项与Visual Studio设置同步。

以不同的方式浏览反编译的代码

由于dotPeek基于ReSharper强大的代码洞察体系结构,它使您能够以上下文或上下文无关的方式导航反编译的程序集,快速了解每个反编译文件中的内容,设置书签并探索继承链。

查找结果列出了所有找到的符号用法

查找任何符号的用法

使用dotPeek,您可以使用多种选项来搜索引用代码符号的位置。

调用查找用法以在所有已加载的程序集中查找符号的所有用法(例如方法或属性)。这些用法将显示在“ 查找结果”工具窗口中,您可以在其中对它们进行分组,在它们之间导航并在代码视图区域中打开。

还有“ 高级查找用法” ,它是“ 查找用法”的更详细版本,可通过限制搜索范围和其他详细信息来帮助您微调搜索条件。

突出显示文件中的用法

突出显示代码查看器中的用法

dotPeek会自动突出显示插入符号下所有可见的符号用法,这与Visual Studio的最新版本非常相似。这有助于提高反编译代码的可读性,尤其是在处理混淆标识符时。

另外,如果要浏览文件中的所有用法,无论当前是否可见,请使用“文件中的突出显示用法” 。这将突出显示当前文件中给定符号的所有用法,并用两种不同的颜色指示写入和读取用法。

文件结构窗口

浏览当前文档

使用“ 转到文件成员 ”可以快速概览并导航到表示反编译类型的文档中的成员。输入成员名称的一部分,然后直接导航到它们。

或者,如果您希望在当前文档中静态显示成员,请打开并停靠“ 文件结构”工具窗口。您也可以过滤此视图:选择工具窗口,然后开始键入字符以仅关注您感兴趣的类型成员。

转到所有内容以跳转到特定的类型,文件,成员等。

跳到任何代码

通过索引程序集列表中的所有程序集及其所有引用,dotPeek提供了两种功能可快速跳转到特定代码:

  • 转到符号有助于导航到特定的符号声明,该声明可以是类型,方法,字段或属性。使用lowerCamelHumps语法来查找类型,例如,输入xmard来查找并打开XamlMarkupDeclaredElement
  • 转到所有内容允许搜索程序集,名称空间,类型,成员或最近打开的文件。
dotPeek中的书签

设定书签

如果您觉得有几行反编译的代码很重要,并且想要稍后再回头看,请随时设置书签。

只需使用快捷方式放下带编号的标记,然后随时使用另一个快捷方式跳回即可。您最多可以创建10个带编号的书签,以及无限个无编号的书签。带书签的位置的完整列表显示在单个弹出窗口中。

上下文相关的导航选项

上下文导航

每当您在代码查看区域中的符号上插入插入符号时,dotPeek都会提供大量上下文导航选项,这些选项都可以通过“ 导航至”下拉菜单使用。

例如, 转到声明使您从使用任何符号转到其声明。如果在另一个部件上声明了该符号,则该部件将自动加载。

转到实现可绕过继承链中的中间继承步骤(例如抽象类),帮助导航到类型和类型成员的最终实现。

其他有用的上下文导航选项包括转到基本符号转到扩展方法

转到派生类型

导航类层次结构

如果您有兴趣从特定类型或类型成员上浏览继承层次结构,请考虑使用转到基本符号转到派生符号

当您想立即访问继承者或基本符号时,这些功能非常有用。

类型层次结构视图

探索继承链

如果您希望获得某个继承链的直观摘要,请使用Type Hierarchy

dotPeek将在单独的工具窗口中以树状视图显示从选定类型继承的所有类型以及它继承自自身的类型。

了解装配体

dotPeek提供了一些工具,可以快速掌握任何给定程序集的结构,了解程序集之间的关系以及将程序集组织到离散列表中,这仅有助于关注您对当前任务感兴趣的程序集。

dotPeek可帮助您浏览文件夹,档案和NuGet软件包

管理程序集列表

您可以根据上下文使用不同的程序集列表。您可以保存并重新打开程序集列表,并在不再需要时清除当前列表。程序集列表不仅限于.dll.exe文件:它们还可以包含NuGet程序包,档案和文件夹。

dotPeek组装浏览器

探索装配体内容

当您使用程序集列表时, 程序集浏览器会显示特定程序集具有什么样的引用,资源和代码,从名称空间一直到类型成员。

对于每种类型,它会突出显示代表其基本类型和继承者的节点-除了实际的成员列表。还支持使用lowerCamelHumps的快速搜索和节点过滤。

使用dotPeek探索装配件元数据

探索装配体元数据

dotPeek还可以帮助您浏览程序集元数据并浏览其中的所有项(表,blob,字符串等)。在“ 元数据”节点下,您可以浏览Blob项的值,PE文件头,元数据表项的用法。

与程序集树中的其他位置相同,您可以双击元数据项以反编译并显示相应的代码。

装配依赖图

查看程序集之间的依赖关系

如果您想知道程序集如何相互依赖,可以在Assembly Explorer中选择多个程序集,并告诉dotPeek显示程序集依赖关系图。

通过它们的引用,这将可视化所选装配之间存在的任何关系。

下载dotPeek

免费,无需许可证密钥