如何使用ClickOnce的混淆?

时间:2010-08-05 15:16:09

标签: .net clickonce obfuscation dotfuscator

如果会发布ClickOnce版本,Dotfuscator如何对其进行模糊处理?

9 个答案:

答案 0 :(得分:21)

您可以使用商业版Dotfuscator通过添加部署清单(“foo.application”)作为Dotfuscator项目的输入来自动模糊ClickOnce应用程序。 Dotfuscator允许您向ClickOnce应用程序中包含的程序集添加任何必要的排除项,并将创建包含模糊程序集的更新部署和应用程序清单。

Visual Studio中包含的免费Dotfuscator版本(包括Visual Studio 2010)没有自动混淆ClickOnce应用程序的功能。为了获得功能模糊的ClickOnce应用程序,您需要重新创建或更新ClickOnce清单,因为模糊处理会更改程序集的签名。

您可以使用mage.exemageui.exe(包含在Windows / .NET SDK中)更新ClickOnce清单。如果您打算使用mage.exe,您需要注意不能在ClickOnce选项中使用“使用.deploy文件扩展名”选项,因为它无法识别它。

假设您的ClickOnce应用程序名为“Foo”且版本为1.0.0.0,您需要遵循的过程是:

  1. 将ClickOnce应用程序发布到磁盘上的目录
  2. 运行Dotfuscator CE并从项目的bin目录添加要混淆的程序集
  3. 对程序集进行模糊处理。模糊的程序集将默认放入名为“Dotfuscated”的子目录中。
  4. 使用sn.exe重新设置模糊处理程序集(仅当您最初强名称时)
  5. 将模糊处理的程序集复制到ClickOnce发布\应用程序文件\ Foo_1_0_0_0目录中的模块之上
  6. 更新应用程序清单并重新签名:

    mage.exe -Update“Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest”-CertFile“c:\ Foo \ foo.pfx”-Password password

  7. 更新部署清单并将其重新签名:

    mage.exe -Update Foo.application -AppManifest“Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest”-CertFile“c:\ Foo \ foo.pfx”-Password password

  8. 您现在拥有使用模糊处理程序集的有效应用程序和部署清单。您还可以使用MageUI.exe工具完成相同的任务(并且它知道如何处理扩展名为.deploy的程序集)但是自动化并不容易。

答案 1 :(得分:3)

我有一个类似于Joe Kuemerle的解决方案,但是在发布过程之前。这适用于Visual StudioMSBuild命令行中的发布。

BeforePublish目标添加到项目文件中。

<ItemGroup>
    <ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
    <Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
    <Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>

ClickOnce文件为ClickOnce.applicationClickOnce.exeClickOnce.exe.manifest。我的dotfuscator.xml与项目文件位于同一文件夹中。关键是最后一个命令,将ClickOnce文件复制到obj文件夹。

答案 2 :(得分:1)

是的,这些是兼容的技术。 ClickOnce只关注应用程序及其关联二进制文件到目标计算机的部署。 Dotfuscator会复制DLL和EXE文件。只要在发布应用程序之前运行Dotfuscator,它们就会一起工作。

答案 3 :(得分:1)

我不知道这是否只能在Visual Studio的更高版本中使用,但对我来说它完美无缺:

  1. 发布模式
  2. 构建可执行文件
  3. 启动您选择的exe-modificator并在 obj / Release /&lt; filename&gt; .exe 修改文件(注意:不是 bin / < / strong>但 obj /
  4. 推送Visual Studio的立即发布按钮,该按钮假设最后一次构建是最新的
  5. 利润:D

答案 4 :(得分:0)

如果您使用的是VS2010,则随附的Dotfuscator将对文件进行模糊处理,然后为您重新签名清单。 [编辑 - 除非你购买完整版本,否则这不是真的;它就像VS2008一样工作。]

如果您使用的是VS2008,则需要发布,然后对文件进行模糊处理,然后使用Mage或MageUI重新签名清单。

答案 5 :(得分:0)

深海混淆器使用clickonce

答案 6 :(得分:0)

Eziriz .NET Reactor具有出色的ClickOnce集成功能。

答案 7 :(得分:-1)

答案 8 :(得分:-1)