- csharp/
- C# 用ConfuserEx混淆clickOnce应用程序
C# 用ConfuserEx混淆clickOnce应用程序
C# 用ConfuserEx混淆clickOnce应用程序,c#,clickonce,obfuscation,C#,Clickonce,Obfuscation,我实际上是在试图混淆ClickOnce应用程序
我的混淆器是ConfuserEx。Il遵循以下步骤:
单击项目属性上的发布向导..\Publish Now按钮。这将自动在上生成您的项目
调试/发布文件夹。我之所以使用它,是因为它还创建了在中使用的文件
单击一次。我们稍后将使用这些文件
在您希望Confuser使用的调试/发布文件夹上打开Confuser并拖放文件
这将创建一个带有模糊程序集的混乱文件夹(使用默认输出目录设置)
将项目运行所需的所有依赖项/文件(如果有)复制到“刚刚创建”文件夹
您
我实际上是在试图混淆ClickOnce应用程序
我的混淆器是ConfuserEx。Il遵循以下步骤:
单击项目属性上的发布向导..\Publish Now按钮。这将自动在上生成您的项目
调试/发布文件夹。我之所以使用它,是因为它还创建了在中使用的文件
单击一次。我们稍后将使用这些文件
在您希望Confuser使用的调试/发布文件夹上打开Confuser并拖放文件
这将创建一个带有模糊程序集的混乱文件夹(使用默认输出目录设置)
将项目运行所需的所有依赖项/文件(如果有)复制到“刚刚创建”文件夹
您的专案现在应该可以使用模糊的组件。我运行该程序只是为了确保:D
将.manifest文件从调试/发布文件夹复制到混乱的文件夹,并使用MageUI对其进行编辑
在MageUI的“文件”部分,找到混乱的文件夹(可能已经被选中),并选中将.deploy放在文件上的选项
然后单击“填充”
您的项目文件将重命名为*.deploy
保存.manifest文件,并使用发布项目时创建的*TemporaryKey.pfx对其进行签名(这应该在
项目文件夹)
将.application文件从Debug/Release文件夹复制到Middle文件夹,并使用MageUI对其进行编辑
在MageUI的“应用程序参考”部分,单击“选择清单…”,然后选择在步骤6中保存的.Manifest文件
保存.application文件并使用*TemporaryKey.pfx对其进行签名
最后,这可能是可选的,只需将发布文件夹中的setup.exe和publish.html文件复制到该文件夹中即可
关于这一主题:
不幸的是,我在之后尝试安装ClickOnce应用程序时出现以下错误:
无法处理从HTTP/HTTPS协议到其他不同协议的重定向
一个
stacktrace如下所示:
System.Net.HttpWebRequest.GetResponse()
System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem
下一步)
我试图下载的URL是https格式的,这是问题所在吗?我是否应该将所有内容都放在http中?若要使用模糊的ClickOnce应用程序,请执行以下步骤:
编译项目并使用Visual Studio发布(右键单击项目>发布)
A.混淆步骤
发布后,使用ConfuserEx(GUI或CLI),然后在特定文件夹(即:MyProject\Middle)中混淆可执行文件和/或DLL
一旦代码被充分模糊化(您可以使用以下工具检查模糊化),使用代码签名证书或临时PFX(通常在首次发布clickonce应用程序时创建)对可执行文件和/或DLL进行签名。我目前正在使用signtool.exe执行此操作
仍然在“混乱”文件夹中,将模糊和签名文件从.exe重命名为.exe.deploy,从.dll重命名为.dll.deploy
转到您发布的文件夹(在我的情况下,它是一个网络文件夹,如下所示:
\\网络\u磁盘\clickonceap
按最新的应用程序文件文件夹中的文件复制/粘贴.deploy文件
\\网络磁盘\ClickOnceApp\Application Files\ClickOnceApp\u x\u x\u x
B.重新签署清单和.application文件
使用MageUI打开应用程序清单。在我的情况下:
\\网络\u磁盘\clickonceap\Application
文件\ClickOnceApp\u 1\u 0\u 0\u 42\ClickOnceApp.exe.manifest
供参考,MageUI可在以下位置找到:
C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.0A\bin\mageui.exe
单击“保存”对清单进行签名(像以前一样使用代码签名证书或临时PFX),它将自动看到.exe.deploy和.dll.deploy文件的更改,并重新计算正确的文件哈希
仍然使用MageUI打开文件
\\网络\u磁盘\clickonceap\Application
文件\ClickOnceApp\u 1\u 0\u 0\u 42\ClickOnceApp.application
在“应用程序引用”菜单上,单击“选择清单”并选择最近修改的清单。保存.Application文件以对其进行签名(如步骤7所示)
对以下文件执行相同操作:
\\网络\u磁盘\ClickOnceApp\ClickOnceApp.application
现在,您的ClickOnce应用程序包含模糊代码,可以使用ClickOnce流程下载
注:
- 就我个人而言,我不得不在命令行(ConfuserEx.CLI.exe)中使用ConfuserEx,因为我必须混淆代码的一个部分。混淆所有部分将返回许多有关WinForms汇编和加载的错误
- 在命令行中使用它允许开发人员使用,并因此仅混淆代码的某些关键部分
- 我结束了创建自动化这些步骤的脚本。我仍在使用mageUI.exe对两个清单应用程序文件进行签名,但您可以在命令行中使用mage.exe对这些文件进行签名(我还没有尝试)
这一功能现在已经很老了,但我想指出的是,Visual Studio中有一个使用ConfuserEx的扩展,它可以与ClickOnce一起使用:
ConfuserEx for Visual Studio集成了免费和开源
将ConfuserEx protector导入Visual Studio,以方便自动混淆
发布版本和ClickOnce应用程序
按照Thordax指令第3步
一旦代码变得足够模糊(您可以检查
使用ILSpy等工具进行模糊处理),对可执行文件和/或
具有代码签名证书或临时PFX(通常为
在您首次发布clickonce应用程序时创建)。我
目前正在使用signtool.exe执行此操作
您需要像这样使用签名工具:
cd C:\Program Files(x86)\Microsoft SDK\ClickOnce\SignTool