首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用clickOnce混淆ConfuserEx应用程序

用clickOnce混淆ConfuserEx应用程序
EN

Stack Overflow用户
提问于 2015-09-27 12:49:50
回答 3查看 5.4K关注 0票数 2

实际上,我试图混淆一个ClickOnce应用程序。

我的混淆者是ConfuserEx。伊拉克伊斯兰国遵循以下步骤:

  1. 单击项目属性上的发布向导..\立即发布按钮。这将自动在Debug/Release文件夹上构建您的项目。我使用它,因为它还创建了在ClickOnce中使用的文件。我们稍后会使用这些文件。
  2. 打开混淆器和拖放文件到您想让混淆器处理的调试/释放文件夹上。
  3. 这将创建一个混淆的文件夹(使用默认的输出目录设置)和混淆的程序集。
  4. 将项目运行所需的所有依赖项/文件(如果有的话)复制到“创建混乱”文件夹。
  5. 您的项目现在应该使用模糊化的程序集。我运行这个程序只是为了确保。:D
  6. 将.manifest文件从Debug/Release文件夹复制到困惑的文件夹,并使用MageUI编辑它。
  7. 在MageUI的" files“部分,定位混乱的文件夹(可能已经被选中),并检查将.deploy放在文件中的选项,然后单击”填充“。
  8. 项目文件将重命名为*.deploy。
  9. 保存.manifest文件,并使用发布项目时创建的*TemporaryKey.pfx签名(应该在项目文件夹中)。
  10. 将.application文件从Debug/Release文件夹复制到困惑的文件夹,并使用MageUI编辑它。
  11. 在MageUI的“应用参考”部分单击“选择报表.”并选择在步骤6中保存的.manifest文件。
  12. 保存.application文件并使用*TemporaryKey.pfx签名。
  13. 最后,这可能是可选的,只需将发布文件夹上的setup.exe和publish.html文件复制到混乱的文件夹中即可。

关于这一专题:

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

不幸的是,之后尝试安装ClickOnce应用程序时会出现以下错误:

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

堆栈跟踪如下:

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

我试图下载的URL在https中,这是问题所在吗?我应该把所有的都放在http里吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-28 12:16:09

要有一个模糊的ClickOnce应用程序,请执行以下步骤:

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

A.混淆步骤

  1. 发布后,使用ConfuserEx ( GUI或CLI),然后将可执行文件和/或DLL混入特定文件夹(即:MyProject\ your )。
  2. 一旦代码足够模糊(可以使用ILSpy等工具检查混淆情况),使用代码签名证书或临时PFX (通常在首次发布clickonce应用程序时创建)对可执行文件和/或DLL进行签名。我目前正在使用signtool.exe来完成这个任务。
  3. 仍然在您的“困惑”文件夹中,将混淆和签名的文件从.exe重命名为.exe.deploy,从.dll重命名为.dll.deploy。
  4. 转到已发布的文件夹(在我的例子中,它是一个网络文件夹,如下所示:

\network_disk\ClickOnceApp

  1. 按最新应用程序文件文件夹中的文件复制/粘贴.deploy文件

\network_disk\ClickOnceApp\Application Files\ClickOnceApp_x_x_x_x

重新签署清单和.application文件

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

\network_disk\ClickOnceApp\Application Files\ClickOnceApp_1___42\ClickOnceApp.exe.manifest

FYI,MageUI可以在这里找到:

C:\程序文件(x86)\Microsoft SDKs\Windows\v7.0A\bin\mageui.exe

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

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

\network_disk\ClickOnceApp\Application Files\ClickOnceApp_1___42\ClickOnceApp.application

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

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

\network_disk\ClickOnceApp\ClickOnceApp.application

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

备注:

  • 就个人而言,我不得不在命令行中使用ConfuserEx (ConfuserEx.CLI.exe),因为我必须混淆代码的单个部分。混淆所有这些都会返回与WinForms的组装和加载有关的许多错误。
  • 在命令行中使用它可以让开发人员使用声明混淆,因此,只混淆代码的一些关键部分。
  • 我结束了创建一个自动执行这些步骤的脚本。我仍然在使用mageUI.exe对两个清单中的应用程序文件进行签名,但是您可以使用mage.exe在命令行中对这些文件进行签名(我还没有尝试)。
票数 7
EN

Stack Overflow用户

发布于 2019-09-17 08:52:15

现在这已经很旧了,但是我想提到Visual中有一个扩展可以使用ConfuserEx,它可以与ClickOnce一起工作:

Visual的ConfuserEx工具

ConfuserEx for Visual将免费的开源ConfuserEx保护程序集成到Visual中,以方便发布版本和ClickOnce应用程序的自动混淆。

票数 2
EN

Stack Overflow用户

发布于 2020-11-22 08:44:47

遵循Thordax指令@步骤3,

一旦代码足够模糊(可以使用ILSpy等工具检查混淆情况),使用代码签名证书或临时PFX (通常在首次发布clickonce应用程序时创建)对可执行文件和/或DLL进行签名。我目前正在使用signtool.exe来完成这个任务。

您需要使用这样的签名工具: cd C:\Program (x86)\Microsoft \ClickOnce\SignTool

然后像这样在exe上签名

signtool.exe签署/td sha256 /fd sha256 /f pathtoyourcert.pfx /p密码

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32808084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档