.net core 用于.NET核心单次发布文件的模糊器

.net core 用于.NET核心单次发布文件的模糊器,.net-core,obfuscation,.net-core-publishsinglefile,.net Core,Obfuscation,.net Core Publishsinglefile,是否有一个模糊处理工具可以很好地处理dotnet core单文件发布产生的exe和pdb文件 我使用的是dotnet核心单文件发布命令:dotnet publish-r win-x64-c Release/p:PublishSingleFile=true。这非常适合只给我两个整洁的文件,一个exe和一个pdb文件,我可以给客户端运行我的应用程序 然而,我仍然担心它的反编译能力 我尝试在这两个文件上使用ILSpy和JustCompile,幸运的是它们无法用这些工具进行反编译。那么,是我的文件是安全

是否有一个模糊处理工具可以很好地处理dotnet core单文件发布产生的exepdb文件

我使用的是dotnet核心单文件发布命令:
dotnet publish-r win-x64-c Release/p:PublishSingleFile=true
。这非常适合只给我两个整洁的文件,一个exe和一个pdb文件,我可以给客户端运行我的应用程序

然而,我仍然担心它的反编译能力


我尝试在这两个文件上使用ILSpy和JustCompile,幸运的是它们无法用这些工具进行反编译。那么,是我的文件是安全的,还是工具还没有跟上

如果是后者,我可以使用什么模糊处理工具来保护这些文件?我尝试使用的是对单个文件发布输出不起作用的exepdb


有关用于此目的的模糊处理工具的任何建议?

如果手动解压缩.NET Core自足可执行文件,则可以对其进行反编译:

在将各个程序集压缩到单个文件中之前,必须在构建过程中运行模糊处理程序。如果添加一个执行模糊处理程序的自定义MSBuild目标,并使用
BeforeTargets
属性在生成过程中的正确点将其集成,则可能会出现这种情况。但我还没有详细研究.NET核心构建系统。

披露:我在PreEmptive为Dotfuscator团队工作

我们已经测试并验证了Dotfuscator Professional在.NET Core 3和.NET 5上都能处理这种情况。 具体来说,您必须使用Dotfuscator Professional的MSBuild集成,它现在是我们的。但是,Dotfuscator不会更新.NET Core或.NET 5上的
.pdb
文件,因此您将无法调试使用Dotfuscator的生成(例如,发布生成)。您不应将
.pdb
文件发送给不受信任的用户。

您可以使用模糊车。

目标编译后在obj目录中使用它,然后将模糊文件复制到目录中。(替换为原始文件)

“工具还没有跟上吗?”是的,这是。当前(3.x)的单个文件基本上是包含程序集和.NET核心运行时的压缩文件。第一次运行它时,它会将自己解压缩到另一个目录中。试着在那个未压缩的版本上运行你的工具。但是压缩的版本是我将要交给客户端的。如果我对未压缩的版本运行它,就像使用模糊卡一样,这只会给我其他未压缩的DLL。但这不会影响单文件发布输出,即我给客户端的exe和pdb文件。我想你误解了我的意思:单文件是压缩版本。当你在客户机上运行它时,它会自动解压。我明白了,但我想说清楚。当应用程序运行且未压缩时,我无法访问客户端的计算机。因此,我如何模糊我的文件,然后使用单个文件发布压缩它们,然后当它在客户机上运行时,它将被模糊化。有这样的解决方案吗?哦。对不起,我没有合适的工具来完成这项工作。我只是指出,当前的工具不适用于单一发布,这并不意味着您的代码无法恢复。我在中做了一些工作。在这方面,问题是,即使dll在检查时被混淆。当运行.exe后检查temp文件夹时,.dll仍然没有模糊。如果有进展,最后可以在此处发布。需要复制到obj/Release文件夹,才能将其包含在单个发布的文件中。有很多bug。例如,它会混淆在内部类中实现的
IDisposable.Dispose
,这会使应用程序崩溃。