如何使用 .NET Reactor 混淆包含多个附属程序集的 .NET Core 3 程序集?

Der*_*tic 5 c# obfuscation .net-assembly net-reactor .net-core

我有一个用 .NET Reactor v.6.0.0.0 混淆的 .NET Core 3.0.100 程序集。

所述主程序集依赖于已通过使用 Reactor命令与其一起打包和混淆的附加程序集:
-satelite_assemblies [path/s]
-merge 1

使用 dotPeek 并反编译程序集,我可以看到所有正确的 .dll 都包含在主程序集中,并与其一起混淆 - 到目前为止一切顺利。

仅构建(且未混淆)时,主 .dll 还具有一个与之一起的 [name].deps.json 文件,该文件告诉它在什么位置以及在哪里可以找到附加程序集(标准 .NET Core 过程)。

在混淆的程序集(包含所有其余部分)中,该文件不再有效(也无法包含),因为程序集的“位置”现在已更改,因此在运行混淆的 .dll 时,我们在控制台中收到错误消息找不到依赖的 .dll。

我们如何使用 .NET Reactor 混淆和合并多个 .dll,并且仍然让主程序集知道在哪里找到它们?

  • 是否需要手动更改 [name].deps.json,如果需要,是什么类型的更改?
  • 有没有办法使用 .NET Reactor 自动指定它或以某种方式包含它(-satellite_assemblies 仅接受 .dll 和 .exe 文件)?
  • 当依赖 [name].deps.json 文件时, 是否只能对它们进行混淆而不合并它们?

小智 3

您可以更新到新版本 6.2 (15.01.2020)。此版本可以合并/嵌入 .NET Core 程序集并自动更新 [name].deps.json 文件。现在,您还可以将 .NET Core 文件捆绑到单个 EXE 文件中。