使用ConfuserEx

时间:2015-09-27 12:49:51

标签: c# clickonce obfuscation

我实际上是在试图混淆ClickOnce应用程序。

我的Obfuscator是ConfuserEx。 Il遵循以下步骤:

  
      
  1. 点击项目属性上的发布向导.. \立即发布按钮。这将自动构建您的项目   调试/释放文件夹。我使用它,因为它也创建了使用的文件   ClickOnce的。我们稍后会使用这些文件。
  2.   
  3. 打开Confuser和Drag-Drop文件在您希望confuser工作的Debug / Release文件夹中。
  4.   
  5. 这将使用模糊处理的程序集创建一个Confused文件夹(使用默认输出目录设置)。
  6.   
  7. 将项目所需的所有依赖项/文件(如果有)复制到刚创建“Confused”文件夹。
  8.   
  9. 您的项目现在应该使用混淆的程序集。我运行程序只是为了确保。 :d
  10.   
  11. 将.manifest文件从Debug / Release文件夹复制到Confused文件夹并使用MageUI编辑它。
  12.   
  13. 在MageUI的“文件”部分,找到Confused文件夹(可能已被选中)并选中将.deploy放在文件上的选项   然后单击“填充”。
  14.   
  15. 您的项目文件将重命名为* .deploy
  16.   
  17. 保存.manifest文件并使用您在发布项目时创建的* TemporaryKey.pfx对其进行签名(这应该在您的   项目文件夹)。
  18.   
  19. 将.application文件从Debug / Release文件夹复制到Confused文件夹并使用MageUI编辑它。
  20.   
  21. 在MageUI的“应用程序参考”部分单击“选择清单..”,然后选择您在步骤6中保存的.manifest文件。
  22.   
  23. 保存.application文件并使用* TemporaryKey.pfx。
  24. 进行签名   
  25. 最后,这可能是可选的,只需将发布文件夹中的setup.exe和publish.html文件复制到Confused文件夹即可。
  26.   

关于这个主题:

https://confuser.codeplex.com/discussions/428378

不幸的是,当我尝试安装ClickOnce应用程序后,我收到以下错误:

  

无法处理从HTTP / HTTPS协议到其他不同的重定向   的。

堆栈跟踪如下:

  

System.Net.HttpWebRequest.GetResponse()             System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem   下)

我尝试下载的网址是https,问题是什么?我应该全部放入http吗?

3 个答案:

答案 0 :(得分:2)

要使用模糊的ClickOnce应用程序,请按照下列步骤操作:

  1. 编译项​​目并使用Visual Studio(右键单击项目>发布)
  2. 发布它

    甲。混淆步骤

    1. 发布后,使用ConfuserEx(GUI或CLI),然后在特定文件夹中混淆可执行文件和/或DLL(即:MyProject \ Confused)
    2. 一旦您的代码被充分混淆(您可以使用ILSpy等工具检查您的混淆),请使用代码签名证书或使用临时PFX(通常创建的)签署您的可执行文件和/或DLL当您第一次发布您的clickonce应用程序时)。我目前正在使用signtool.exe。

    3. 仍然在“Confused”文件夹中,将模糊和签名的文件从.exe重命名为.exe.deploy,并从.dll重命名为.dll.deploy

    4. 转到您发布的文件夹(就我而言,它是一个网络文件夹,如下所示:

    5.   

      \\ network_disk \ ClickOnceApp

      1. 按照最新的Application Files文件夹中找到的文件复制/粘贴.deploy文件
      2.   

        \\ network_disk \ ClickOnceApp \ Application Files \ ClickOnceApp_x_x_x_x

        B中。重新签名清单和.application文件

        1. 使用MageUI打开应用的清单。就我而言:
        2.   

          \\ network_disk \ ClickOnceApp \应用   文件\ ClickOnceApp_1_0_0_42 \ ClickOnceApp.exe.manifest

          仅供参考,MageUI可以在这里找到:

            

          C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin \ mageui.exe

          单击“保存”以对清单进行签名(如前所述使用代码签名证书或临时PFX),它将自动查看.exe.deploy和.dll.deploy文件的更改并重新计算正确的文件哈希。

          1. 仍然使用MageUI,打开文件
          2.   

            \\ network_disk \ ClickOnceApp \应用   文件\ ClickOnceApp_1_0_0_42 \ ClickOnceApp.application

            在“应用程序参考”菜单上,单击“选择清单”并选择最近修改的清单。通过保存来保存.application文件(如步骤7)

            1. 对以下文件执行相同的操作:
            2.   

              \\ network_disk \ ClickOnceApp \ ClickOnceApp.application

              现在,您的ClickOnce应用程序包含模糊代码,可以使用ClickOnce进程下载。

              注意:

              • 个人而言,我不得不在命令行(ConfuserEx.CLI.exe)中使用ConfuserEx,因为我必须对我的代码的一部分进行模糊处理。对所有这些进行模糊处理会返回许多关于WinForms的汇编和加载的错误。
              • 在命令行中使用它允许开发人员使用Declarative Obfuscation,因此,只会混淆代码的一些关键部分。
              • 我结束了创建一个自动执行这些步骤的脚本。我仍然使用mageUI.exe来标记两个应用程序文件,但是您可以使用mage.exe在命令行中对这些文件进行签名(我还没有尝试过)。

答案 1 :(得分:0)

现在已经很老了,但是我想说一下Visual Studio中有一个扩展程序可以使用ConfuserEx,它可以与ClickOnce一起使用:

ConfuserEx Tools for Visual Studio

  

ConfuserEx for Visual Studio集成了免费和开源   ConfuserEx保护器到Visual Studio中可轻松进行自动混淆   版本构建和ClickOnce应用程序。

答案 2 :(得分:0)

遵循Thordax指令@步骤3,

一旦您的代码被充分混淆(您可以检查您的代码 使用ILSpy之类的工具进行混淆),对您的可执行文件和/或您的 带有代码签名证书或临时PFX的DLL(通常是 在首次发布clickonce应用程序时创建)。我是 当前正在使用signtool.exe来这样做。

您需要使用以下签名工具: cd C:\ Program Files(x86)\ Microsoft SDKs \ ClickOnce \ SignTool

然后像这样对exe签名

signtool.exe标志/ td sha256 / fd sha256 / f pathtoyourcert.pfx / p密码pathtoyourconfusedexe