【发布时间】:2020-05-19 16:46:16
【问题描述】:
是否有一种混淆工具可以很好地处理由 dotnet 核心单文件发布产生的 exe 和 pdb 文件?
我正在使用 dotnet core 单文件发布命令:dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true。这非常适合给我两个整洁的文件,一个 exe 和一个 pdb 文件,我可以将它们提供给客户端来运行我的应用程序。
但是,我仍然担心它的反编译能力。
我尝试在这两个文件上使用 ILSpy 和 JustCompile,幸运的是它们无法使用这些工具进行反编译。那是我的文件是安全的,还是工具还没有跟上?
如果是后者,我可以使用什么混淆工具来保护这些文件?我尝试使用Obfuscar,它不适用于单个文件发布输出,exe 和 pdb。
对用于此的混淆工具有什么建议吗?
【问题讨论】:
-
"工具还没跟上?"是的,这个。当前 (3.x) 单个文件基本上是一个压缩文件,其中包含您的程序集以及 .NET Core 运行时。第一次运行它时,它会将自己解压缩到另一个目录中。尝试针对该未压缩版本运行您的工具。
-
但是压缩版是我要交给客户的。如果我对未压缩版本运行它,例如使用 Obfuscar,这只会给我其他未压缩的 dll。但这不会影响单个文件发布输出,即我提供给客户端的 exe 和 pdb 文件。
-
我想你误会了:单个文件是压缩版。当您在客户端机器上运行它时,它会自行解压缩。
-
我明白了,但要清楚一点。当应用程序运行且未压缩时,我无权访问客户端的计算机。因此,我如何混淆我的文件,然后使用单个文件发布来压缩它们,然后当它在客户端机器上运行时,它将被混淆。有没有这样的解决方案?
-
哦。抱歉,我没有找到适合这里工作的正确工具的答案。我只是指出,当前的工具不能用于单次发布并不一定意味着您的代码无法恢复。
标签: .net-core obfuscation .net-core-publishsinglefile