dotPeek 最新变化

This page details the latest updates and changes in dotPeek.

下载 dotPeek

免费使用,无需许可证密钥

新的专属 Assembly Diff(程序集差异)工具窗口

程序集清单的 IL 代码 2024.3

IL Viewer(IL 查看器)工具窗口现在为程序集清单提供 IL 代码,包括:

  • 程序集和模块信息,例如名称、自定义特性等。
  • 引用的程序集和模块。
  • 转发的类型。
  • 文件和资源的列表。

当文本编辑器中的文本光标位于程序集或模块特性上或外部程序集的 <AssemblyName>.cs 文件内的某个地方时,会显示此 IL 代码。

对主构造函数的支持 2024.3

使用声明主构造函数的类时,dotPeek 现在将正确显示构造函数及其形参,让您直接从反编译的代码中完整了解对象实例化的方式。

常规增强 2024.2

  • lambda 形参:我们引入了对使用可选和形参数组形参反编译 lambda 的支持,有助于增强反编译代码的可读性和准确性。
  • lambda 上的特性:工具现在提供了改进的 lambda 表达式特性处理,可以确保所有相关元数据都准确反映在反编译的输出中。
  • 受保护程序集:我们引入了指定是否反编译受保护程序集的功能,从而提供更全面的代码探索。

外部源处理 2024.2

  • 带有 SrcSrv 和 SourceLink 的 PDB:反编译器现在支持从包含 SrcSrv 和 SourceLink 的 PDB 文件导航到源。
  • 预处理程序指令:反编译器现在可以正确识别来自目标框架或相关程序集的可移植 PDB 的预处理程序指令(如 NET6_0_OR_GREATER),确保准确的代码表示。
  • Open in Browser(在浏览器中打开)操作:您现在可以导航到类型仓库中的源代码或者 NuGet 软件包或程序集的仓库。

构建配置检测 2024.2

Assembly Explorer(程序集资源管理器)工具窗口现在可以检测并显示程序集的构建配置,有助于您更清楚地了解程序集的编译上下文。

新的专属 Assembly Diff(程序集差异)工具窗口

新的专属 Assembly Diff(程序集差异)工具窗口 2024.1

2024.1 更新为 dotPeek 引入了新的 Assembly Diff(程序集差异)工具窗口, 更改包括:

  • 比较程序集、NuGet 软件包、文件夹和 .zip 归档的功能已从 Assembly Explorer(程序集资源管理器)移至 Assembly Diff(程序集差异)工具窗口。
  • Diff mode(差异模式)选择器以及 Compare(比较)和 Diff Options(差异选项)按钮已重新定位到 Assembly Diff(程序集差异)工具窗口的 Actions(操作)栏。
对 WebCIL 打包格式的支持

对 WebCIL 打包格式的支持 2024.1

dotPeek 现已支持 WebAssemblies 的 WebCIL 打包格式。 支持涵盖:

  • WebCIL 的反编译。
  • Assembly Explorer 中查看 .wasm 文件的功能。
  • Assembly Explorer 中 WASM 节点的元数据子树,包括 WASM 和 WebCIL 头。
更多 C# 语言功能

程序集差异改进 2023.3

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

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

更多 C# 语言功能

Assembly Explorer 更新 2023.3

  • Assembly Explorer 中浏览 NuGet 软件包时,您现在可以查看这些 NuGet 软件包中包含的所有文件和文件夹。
  • 现在可以在节点表示树和 Properties(属性)窗格中查看 Win32 资源节点,包括大小和类型(如果可以确定)。

其他更新 2023.3

  • 现已引入解码 Win32 字符串表资源的功能。
  • dotPeek 现在可以在程序集/非程序集、捆绑包中的文件、归档、NuGet 软件包、比较的程序集和 Win32 资源的 Properties(属性)窗格中显示所打开文件的大小。
  • 现在可以验证程序集 Authenticode 签名。
  • 显式 #nullable disable 指令显示在反编译的源代码中。
更多 C# 语言功能

程序集差异 2023.2

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

点击此处了解更多信息。

IL Viewer 工具窗口 2023.1

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

  • 低级高级 C# 代码中,IL Viewer 会按照在原始源代码中使用的方式显示变量名称,而在高级 C# 代码中,它还会显示局部变量的原始元组元素名称。
  • 注释的元组元素名称将从 PDB/反编译器渲染,用于中间语言 (IL) 代码中的局部变量声明。
  • 字段和属性初始值设定项、迭代器内语句、async 方法、lambda、局部函数以及高级 C# 的局部函数和嵌套局部函数声明的同步已得到改进。
更多 C# 语言功能

更多 C# 语言功能 2022.3

dotPeek 2022.3 支持:

  • 接口中的 static abstractstatic virtual 成员。
  • 通用特性。
  • 用户定义的 checked 运算符。
  • 无符号右移运算符。
IL Viewer 中的高级和低级 C# 代码

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

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

Assembly Explorer 中的 ReadyToRun 和 NGen 程序集支持

Assembly Explorer 中的 ReadyToRun 和 NGen 程序集 2022.2

  • ReadyToRun (R2R) 和 NGen 程序集在 Assembly Explorer 中的显示方式已得到改进。 现在,每个程序集的名称旁边都会显示一个小的处理器符号图标和 ngenR2R 标签。
  • Metadata 树具有 ReadyToRun 头。
  • Properties(属性)窗口具有 ReadyToRun 版块。
预览标签页

Preview(预览)标签页 2022.1

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

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

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

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

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

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

XML 文档注释

XML 文档注释 2022.1

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

Assembly Explorer 更新 2022.1

Assembly Explorer 现在支持转发类型(TypeForwardedTo 特性)。 Locate in Metadata(在元数据中定位)操作也适用于转发类型、程序集和模块引用以及资源。

其他更新 2022.1

  • 我们在 Metadata(元数据)视图中关闭了导航重定向。
  • 我们在 blob 节点的属性中添加了解码/原始 blob 表示。
  • 我们改进了没有序列点的类型的 PDB 导航,例如接口和枚举。
单文件应用程序支持

对 record 和 record struct 的支持 2021.3

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

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

对单文件应用的扩展支持

对单文件应用的扩展支持 2021.3

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

  • 您可以看到 .runtimeconfig.json 文件等捆绑的 .json 文件的内容。
  • 点击 Assembly Explorer(程序集资源管理器)中的根节点,即可查看包含所有嵌入文件的列表以及有关单文件应用的技术信息(标题格式版本ID)。
  • 您可以将所有文件提取到一个文件夹(使用上下文菜单中的 Extract Bundle Content to Folder(将捆绑内容提取到文件夹)操作),或从捆绑包提取一个特定文件作为外部文件(使用上下文菜单中的 Extract to File(提取到文件)操作)。
单文件应用程序支持

单文件应用程序支持 2021.2

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

标签页管理

标签页管理 2021.1

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

代码样式和格式化

代码样式和格式化 2021.1

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

下载 dotPeek

免费使用,无需许可证密钥