dotPeek 最新变化

此页面详细介绍了 dotPeek 中的最新更新和变化。

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

增强的 C# 13 支持和可读性升级 2025.1

2025.1 版本为反编译器带来了多项改进,增强了对最新 C# 功能的支持并提高了代码可读性。 最新变化如下:

  • required 成员的支持。
  • 添加了对 C# 13 中引入的新 System.Threading.Lock 类型的支持。
  • ref 字段和 scoped 形参修饰符的支持。
  • allows ref struct 泛型反约束的支持。
  • ref struct 类型的基于模式的 using
  • 对字符串内插的支持。
  • 反编译代码中的某些整数常量现在包含注释的十六进制表示法,可以提高可读性。
  • 对文件作用域的命名空间的支持。
新的专属 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# 的局部函数和嵌套局部函数声明的同步已得到改进。