我想问一下是否可以使用Fody-Costura(将依赖项嵌入可执行文件中)和Obfuscar进行混淆。

目前,我很努力,因为Costura的Visual Studio 2017中的msbuild目标在混淆符之一之前执行(然后提示缺少依赖文件)。

由于obfuscar本身并不提供目标,因此我正在使用MSBuild.Obfuscar

是否可以通过指定目标的顺序来结合这两种方法?

最佳答案

我创建了一个快速的Framework控制台应用程序项目,并添加了Costura,MSBuild.Obfuscar和NLog。为了使Obfuscar正常工作,我要做的就是编辑Obfuscar.xml文件以包含实际的程序集名称:

<?xml version="1.0" encoding="utf-8"?>
<Obfuscator>
  <Var name="InPath" value="bin\Release" />
  <Var name="OutPath" value="$(InPath)\obfuscated" />
  <Var name="HidePrivateApi" value="true" />
  <!-- was: file="$(InPath)\"  -->
  <Module file="$(InPath)\ConsoleApp1.exe" />
</Obfuscator>

这对我来说很好。生成的程序集混淆了我的代码,并且还包含NLog作为资源。如果您看到不同的结果,则可能与解决方案中包含的其他特定NuGet软件包有关。

10-06 15:47