首 页
手机版

dotPeek官方版 v2024.1.1

用于NET程序反编译和分析的反编译工具

dotPeek官方版是一款专业强大的NET程序反编译工具,提供了搜索代码、调查类型继承层次结构、研究类型数据变化、添加任意数量的类型以及丰富的反编译功能等多种实用功能,通过dotpeek,用户可以轻松地查看和分析.NET程序的源代码,从而更加灵活地修改和优化你的.NET程序,提升其功能和性能。

dotPeek还提供了不同的代码结构和层次结构视图,使用户能够以不同的方式查看和分析代码,这些视图包括类视图、对象视图、调用层次结构视图等,可以根据用户的需求进行选择和切换,此外,dotPeek还允许用户从不同的项目或编译的程序集中添加任意数量的类型,用户可以将多个项目或程序集组合在一起,以便更方便地进行代码分析和比较,这对于跨项目的代码重用和共享也非常有帮助,无论是在开发过程中还是在学习和研究其他代码,dotPeek都能帮助用户更好地理解和分析代码,提高工作效率和学习能力。

dotPeek官方版怎么用?

一、服务器

1、打开dotPeek官方版后,在工具栏有个 Start Symbol Server 的功能,然后点击此按钮,即可启动 Symbol Server,

2、启动 Symbol Server 后,我们需要一个地址对吧,看右下角的一个小按钮,可以看到我们的地址为:localhost33417,

二、设置VS

1、有了Symbol Server后,打开VS,找到工具->选项>调试->符号,然后添加我们刚刚启动的 Symbol Server 地址,

2、然后,再找到工具->选项 -> 调试 -> 常规,取消选 启动”仅我的代码”,然后点击确定,

三、Debug

接着创建一个.net core web api 的项目,安装一个Newtonsoft ,写一些简单的代码(如下)。打上断点,然后启动项目,F10一步一步的走,未到框架代码时 F11,可以看到进入了Lsit的add方法,与Newtonsoft SeriazeObiect 方法,以上就是dotPeek官方版的用法了。

dotPeek官方版新功能介绍

1、程序集差异改进

dotPeek可以比较 NuGet 软件包、文件夹和 .zip 文件。

用于比较程序集的功能现在具有更多比较选项。 您可以选择多种不同的模式(Show all(全部显示)、Show only differences(仅显示差异)、Show only signature differences(仅显示签名差异)、Show only public API differences(仅显示公共 API 差异))。 此外,您还可以指定是否希望差异忽略成员/特性顺序差异以及可以为 null 的引用类型的注解中的差异。

2、Assembly Explorer 更新

在 Assembly Explorer 中浏览 NuGet 软件包时,您现在可以查看这些 NuGet 软件包中包含的所有文件和文件夹。

现在可以在节点表示树和 Properties(属性)窗格中查看 Win32 资源节点,包括大小和类型(如果可以确定)。

3、程序集差异

dotPeek提供了详细比较两个程序集的方法。 仔细检查特定程序集两个版本之间的差异并搜索较新版本中可能引入的潜在漏洞时,这个功能特别实用。

4、IL Viewer 工具窗口

2023.1 版本的 dotPeek 包含以下针对 IL Viewer 工具窗口的改进:

在低级和高级 C# 代码中,IL Viewer 会按照在原始源代码中使用的方式显示变量名称,而在高级 C# 代码中,它还会显示局部变量的原始元组元素名称。

注释的元组元素名称将从 PDB/反编译器渲染,用于中间语言 (IL) 代码中的局部变量声明。

字段和属性初始值设定项、迭代器内语句、async 方法、lambda、局部函数以及高级 C# 的局部函数和嵌套局部函数声明的同步已得到改进。

5、更多 C# 语言功能

dotPeek支持:

接口中的 static abstract 和 static virtual 成员。

通用特性。

用户定义的 checked 运算符。

无符号右移运算符。

6、IL Viewer 中的高级和低级 C# 代码

一个新增选项可供在 IL Viewer 工具窗口中查看反编译的高级和低级 C# 代码。 反编译的代码仍同步到代码编辑器中的源代码。

7、Assembly Explorer 中的 ReadyToRun 和 NGen 程序集

ReadyToRun (R2R) 和 NGen 程序集在 Assembly Explorer 中的显示方式已得到改进。 现在,每个程序集的名称旁边都会显示一个小的处理器符号图标和 ngen 或 R2R 标签。

Metadata 树具有 ReadyToRun 头。

Properties(属性)窗口具有 ReadyToRun 版块。

8、Preview(预览)标签页

我们引入了在单个 Preview(预览)标签页中显示文件的功能,您在 Visual Studio 中已经习惯这个功能。 这有助于需要特定目标但不需要将文件都作为单独标签页打开的情况。

如果要将文件保留在单独的标签页中,请点击 Preview(预览)标签页上的 Keep open(保持打开)图标。 要禁用 Preview(预览)标签页,请转到 Tools | Options | Tabs(工具 | 选项 | 标签页),选择 Allow new files to be opened in the preview tab(允许在预览标签页中打开新文件)。

9、文本编辑器内的 Quick Find(快速查找)窗格

我们将 Quick Find(快速查找)功能从单独的工具窗口移至文本编辑器标签页。 现在,为文件调用 Quick Find(快速查找)(Ctrl+F) 时,Quick Find(快速查找)窗格将出现在该文件的文本编辑器标签页内。

我们还添加了 F3 和 Shift+F3 快捷键,使用 Quick Find(快速查找)窗格查找内容时,可供快速导航到下一个或上一个匹配项。

10、XML 文档注释

dotPeek 现在可以显示平台程序集的 XML 文档注释,涵盖名称与 XML 文档文件名称不同的程序集,例如 System.Private.CoreLib。 XML 文档的路径现在会显示在反编译文件的标题中。

11、对 record 和 record struct 的支持

dotPeek 为 record 和 record struct 类型提供了初始支持。 对 record、record struct 和 struct 的 with 表达式的支持也已可用。

对于此版本中包含的其他 C# 功能,反编译器现已支持异步处理 (await using)。

12、对单文件应用的扩展支持

我们将继续改进对读取和反编译单文件应用的支持:

您可以看到 .runtimeconfig.json 文件等捆绑的 .json 文件的内容。

点击 Assembly Explorer(程序集资源管理器)中的根节点,即可查看包含所有嵌入文件的列表以及有关单文件应用的技术信息(标题格式版本和 ID)。

您可以将所有文件提取到一个文件夹(使用上下文菜单中的 Extract Bundle Content to Folder(将捆绑内容提取到文件夹)操作),或从捆绑包提取一个特定文件作为外部文件(使用上下文菜单中的 Extract to File(提取到文件)操作)。

13、单文件应用程序支持

现在,dotPeek 可以反编译单文件应用。 它还可以让您像以前一样浏览单文件应用中的捆绑程序集。 它支持 .NET Core 3.1、.NET 5 和即将推出的 .NET 6 SDK 的单一文件格式。

14、标签页管理 

同时使用多个标签页时,您现在可以将其固定。 此外,标签页的颜色代表您将看到的代码类型 - 绿色代表元数据视图,棕色代表符号文件中的源。 固定标签页和对其进行颜色编码的选项可以在 Tools | Options | Environment | Tabs 中禁用。

15、代码样式和格式化

我们更新了反编译代码的格式化程序,包含一组用于控制代码显示方式的选项。 现在,您可以设置缩进样式和大小,选择是否将左大括号置于新行,以及是否偏好使用表达式体成员。 您可以在 Tools | Options | Decompiler | Code style and formatting 中找到这些功能。

dotPeek官方版软件特色

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

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

1、库、可执行文件以及更多

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

dotPeek 也可以反编译 .baml 文件,让您能够重建 XAML UI 定义。

除了传统的程序集和可执行文件,您还可以使用 dotPeek 打开存档(.zip、.vsix 或 .nupkg)和文件夹。 您还可以查找并从任意在线包源加载 NuGet 包(及其依赖项),或者加载 Visual Studio 项目的 packages.config 文件中列出的包。

2、查看源代码是否可用

反编译代码聊胜于无,不过有时您可以将程序集与它的源代码相匹配,那么为什么不利用这一点呢? dotPeek 可以根据 PDB 文件识别本地源代码,或者从 Microsoft Reference Source Center 或 SymbolSource.org 等源服务器中获取源代码。 此外,dotPeek 可以生成 PDB 文件。

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

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

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

4、探索正在运行的进程

Process Explorer 窗口可以显示当前正在运行的所有进程的列表,并且可以探索进程的模块以及对其中的 .NET 程序集进行反编译。 您可以选择显示或隐藏原生进程和模块,或者打开进程层次结构视图。

筛选列表以查找您正在寻找的模块或进程,然后将其程序集添加到Assembly Explorer中进行更深入的调查。

5、以单独视图查看 IL 代码

无论您何时想要在源代码以外深入了解,都可以从反编译的 C# 中的任意一点导航到 IL 代码。

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

dotPeek 可为反编译代码和从符号文件重现的源代码显示 IL 代码。

6、以反编译的 C# 的注释形式查看 IL 代码

或者,您也可以选择以反编译的 C# 代码的注释形式显示 IL 代码,这实际上会将它的默认文本查看器和通常单独的 IL Viewer 窗口合并显示在一个视图中。

7、使用您偏好的颜色主题

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

例如,您可以选择“蓝色”或“深色”主题,或者选择与 Visual Studio 设置同步颜色主题偏好设置。

二、以不同的方式导航反编译的代码

dotPeek 基于 ReSharper 强大的代码洞察架构,让您能够以上下文相关或上下文无关的方式导航反编译的程序集,获得每个反编译文件中内容的快速摘要,设置书签以及探索继承链。

1、查找任意符号的用法

借助 dotPeek,您可以通过多个选项搜索引用代码符号的位置。

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

还有 Find Usages Advanced,它是更详细版的 Find Usages,通过限制搜索范围和其他细节来帮助您优化搜索条件。

2、在代码查看器中高亮显示用法

dotPeek 会自动高亮显示脱字符号下符号的所有可见用法,与最新版本的 Visual Studio 非常相似。 这有助于改进反编译代码的可读性,特别是在您处理混淆的标识符时。

此外,如果您想要浏览文件中的所有用法,则无论它们是否可见,都请使用 Highlight Usages in File。 这将会高亮显示当前文件中给定符号的所有用法,使用两种不同的颜色表示写入用法和读取用法。

3、探索当前文档

使用 Go to File Member 进行快速浏览,并导航到表示反编译类型的文档中的成员。 输入部分成员名称,然后直接导航到它们。

或者,如果您想要静态显示当前文档中的成员,请打开 File Structure 工具窗口并将其停靠在某个位置。 您也可以筛选此视图:选择工具窗口,开始输入字符,仅关注您感兴趣的类型成员。

4、跳到任意代码

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

Go to Symbol 有助于您导航到特定的符号声明,可能是类型、方法、字段或属性。 使用 lowerCamelHumps 语法可定位类型 - 例如,输入 xmard 可定位并打开 XamlMarkupDeclaredElement。

Go to Everything 让您可以搜索程序集、命名空间、类型、成员或最近打开的文件。

5、设置书签

如果存在您觉得重要并且想要以后返回来处理的反编译代码行,请设置书签。

使用一个快捷键拖动带编号的标记,并使用另一个快捷键随时跳回来。 您可以创建多达10个带编号的书签以及无数个不带编号的书签。 已加入书签的位置的完整列表将在一个弹出窗口中显示。

6、上下文导航

当您将脱字符号放在代码视图区域中的符号上时,dotPeek 可以通过 Navigate To 下拉菜单提供大量的上下文导航选项。

例如,Go to Declaration 会将您从任意符号的用法转到它的声明。 如果该符号已在另一个程序集上声明,将自动加载程序集。

Go to Implementation 有助于导航到类型和类型成员的最终实现,跳过继承链中的中间步骤,例如抽象类。

其他有用的上下文导航选项包括 Go to Base Symbols 和 Go to Extension Methods。

7、导航类层次结构

如果您想在来自某个特定类型或类型成员的继承层次结构中上下导航,可以考虑使用 Go to Base Symbols 和 Go to Derived Symbols。

如果您想立即转到继承者或基本符号,这两个操作特别有用。

8、探索继承链

如果您希望获得特定继承链的可视摘要,请使用 Type Hierarchy。

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

三、了解程序集

dotPeek 提供了相关的工具来快速抓取给定程序集的结构,了解程序集之间的关系,以及将程序集组织到离散的列表中,最后一项功能有助于仅关注与当前任务有关的程序集。

1、管理程序集列表

根据上下文的不同,您可以处理不同的程序集列表。 您可以保存并重新打开程序集列表,如果您不再需要,还可以清除当前列表。 程序集列表并不局限于 .dll 和 .exe 文件:它们也可以包含 NuGet 包、存档和文件夹。

2、探索程序集内容

在您处理程序集列表时,Assembly Explorer 可以显示特定程序集具有的引用、资源和代码种类,从命名空间到类型成员。

对于每种类型,除了实际成员列表外,它还可以高亮显示表示其基类型和继承者的节点。 也支持使用 lowerCamelHumps 进行快速搜索和节点筛选。

3、探索程序集元数据

dotPeek 也可以帮助您探索程序集元数据,并深挖其中的所有项(表、blob、字符串等)。 在 Metadata 节点下,您可以探索 blob 项的值、PE 文件头、元数据表项的用法。

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

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

如果您想了解程序集彼此之间的依赖关系,可以在 Assembly Explorer 中选择多个程序集,然后指示 dotPeek 显示程序集依赖关系图。

这将借助选定程序集的引用可视化它们之间存在的任何关系。

收起介绍展开介绍

同厂商

JetBrains更多+
  • 反编译工具大全
更多 (23个) >>反编译工具大全 反编译工具是一种软件开发工具,能够将已编译好的语言代码转换成高级编程语言的源代码形式,让用户们可以更加容易理解编译后的程序逻辑,这一类的软件通常具备了代码还原能力、可视化分析、智能代码重构、动态调试支持、安全性检测与保护分析等等功能,能够应用的场景也是非常多,比如学习和研究已编译程序的内部原理和实现细节,在没有原始源代码的情况下,对软件进行调试、修复或改进。为了方便大家进行下载体验,小编在此就提供了反编译工具大全,里面有着各种各样的反编译软件,有兴趣的朋友们可以自行挑选下载。
  • 下载地址
dotPeek官方版 v2024.1.1

有问题? 点此报错

发表评论

0条评论