如果你将发布一个ClickOnce版本,怎么会被Dotfuscator混淆?如何为ClickOnce使用模糊处理?
回答
通过添加部署清单(“foo.application”)作为您的Dotfuscator项目的输入,您可以使用Dotfuscator的商业版来自动混淆ClickOnce应用程序。 Dotfuscator将允许您为ClickOnce应用程序中包含的程序集添加任何必需的排除,并将创建包含混淆程序集的更新的部署和应用程序清单。
包含在Visual Studio(包括Visual Studio 2010)中的Dotfuscator的免费版本没有自动混淆ClickOnce应用程序的功能。为了获得功能混淆的ClickOnce应用程序,您需要重新创建或更新ClickOnce清单,因为混淆会更改程序集的签名。
您可以使用mage.exe或mageui.exe(包含在Windows/.NET SDK中)更新ClickOnce清单。如果您要使用mage.exe,您需要注意,您无法使用ClickOnce选项中的“使用.deploy文件扩展名”选项,因为它无法识别它。
假设您的ClickOnce应用程序被命名为“富”,是在1.0.0.0版本,你将要遵循的流程是:
- 发布您的ClickOnce应用程序到磁盘目录下
- 运行Dotfuscator的CE并从您的项目的bin目录中添加要混淆的程序集
- 混淆程序集。混淆后的程序集将默认放入名为“Dotfuscated”的子目录中。
- 辞职混淆的组件与SN.EXE(如果只有最初强命名它们)
- 拷贝过来的的ClickOnce的那些顶部发布\应用程序文件\ Foo_1_0_0_0目录
更新的应用程序清单混淆的组件辞职吧:
mage.exe -Update “应用程序文件\ Foo_1_0_0_0 \ Foo.exe.manifest” -CertFile “C:\富\ foo.pfx” - 密码密码
更新部署清单和辞职:
mage.exe -Update Foo.application -AppManifest“Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest”-CertFile“c:\ Foo \ foo。PFX” - 密码密码
您现在有一个有效的应用程序,并使用模糊组件部署清单,你也可以使用MageUI.exe工具来完成相同的任务(和它知道如何处理与组件。部署扩展名),但它是不容易实现自动化。
是的,这些是兼容的技术。 ClickOnce只关注于将应用程序及其关联的二进制文件部署到目标机器。 Dotfuscator会破坏DLL和EXE文件。只要您在发布应用程序之前运行Dotfuscator,它们就可以一起工作。
但是,在VS2010中,如果'发布'clickonce,则没有dll/exe。如何在发布应用程序之前运行Dotfuscator。 – Begtostudy 2010-08-06 00:43:08
添加'在发布应用程序之前运行Dotfuscator',如何发布? – Begtostudy 2010-08-06 01:07:40
如果您使用VS2010,随附的Dotfuscator会混淆文件,然后为您重新签署清单。 [编辑 - 这是不正确的,除非你购买完整版本;它就像VS2008一样工作。]
如果您使用的是VS2008,则需要发布,然后混淆文件,然后使用Mage或MageUI重新签名清单。
但是,在VS2010中,如果'发布'clickonce,则没有dll/exe。如何在发布应用程序之前运行Dotfuscator。 – Begtostudy 2010-08-06 00:43:39
查看上面的指示。感谢先发制人,在我向他们询问twitter上的信息后发布了答案。 :-) – RobinDotNet 2010-08-13 09:14:00
我也有类似的乔Kuemerle的一个解决方案,但在此之前发布过程。这适用于Visual Studio和MSBuild命令发布线。
将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.application
,ClickOnce.exe
和ClickOnce.exe.manifest
。我的dotfuscator.xml
与项目文件位于同一个文件夹中。密钥是最后一个命令,将ClickOnce文件复制到obj
文件夹。
嗯,上面的哪一部分根据文件的数量重新生成清单?毕竟,我可能在混淆之前拥有X个文件,但在混淆之后只有一个文件(当然,不包括清单和.vsto文件)。 – 2012-01-26 18:17:55
我不知道这是否是唯一可能在Visual Studio的后续版本,但对我来说,完美的作品:
- 构建可执行文件中发行模式
- 启动的EXE,变质您的选择和修改该文件在OBJ /发行/ <文件名.exe文件>(注意:不是斌/但OBJ/)
- 推发布的Visual Studio现在按钮,假设最后的构建进行了最新
- 利润:d
的深海混淆器的工作使用ClickOnce
Eziriz .NET反应堆有一个很好的ClickOnce集成。
- 1. Flex如何处理模糊图案
- 2. 如何在jQuery中使用模糊处理?
- 3. 如何在Adobe AIR文件(Flash)中使用SecureSWF模糊处理
- 4. 模糊处理大会
- 5. Flex/Air模糊处理
- 6. 半模糊处理/ uglify JavaScript
- 7. 模糊处理Silverlight XAP
- 8. 为某些模型类禁用gwt模糊处理
- 9. 多处理模糊模糊字符串搜索 - python
- 10. Android的模糊处理工作不
- 11. Libgdx:模糊处理的游戏资源
- 12. Objective C与Xamarin iOS C#模糊处理
- 13. 模糊处理您的jQuery代码
- 14. Google Maps API未缩小/模糊处理
- 15. 取消模糊处理(JavaScript的)
- 16. 模糊处理Android源代码
- 17. 模糊处理后的日志消息
- 18. 编译或模糊处理Ruby
- 19. 处理透明度的高斯模糊
- 20. 如何使用ImageMagick对图像进行像素化/模糊处理?
- 21. Parcelable问题当模糊处理使用ProGuard
- 22. 使用ConfuserEx在Xamarin表单中声明性模糊处理
- 23. 当使用Proguard模糊处理时,Gson EnumTypeAdapter中的AssertionError
- 24. 使用JavaScript显示模糊处理HTML输入值的开始
- 25. 在没有模糊处理的情况下对Android使用Proguard
- 26. 模糊推理
- 27. Laravel 5.4混合如何裂伤/丑化/模糊处理脚本
- 28. 如何处理GetDllDirectory生成的模糊值?
- 29. 如何检查一个php文件是否被模糊处理?
- 30. 模糊使用“??”
嗨@Joe,你能解释证书pfx文件来自哪里吗? – RHaguiuda 2011-06-09 18:28:25
@RHaguiuda如果您将软件运送给外部客户,那么它通常来自证书供应商(Comodo,Thawte等)。对于内部应用程序,我使用了由域控制器签名的证书或者只是自签名的makecert.exe证书。 – 2011-06-16 11:12:11
Hi @JoeKuemerle完成此操作后,我的应用程序停止在客户端计算机上工作。它正在检查更新,下载并运行它。然后停止工作。我检查了事件查看器并找到了 1.0.0。0 4f29010f Ç d System.NullReferenceException C:\用户\ interbiz \应用程序数据\本地\ TEMP \ WER22D1.tmp.WERInternalMetadata.xml – Bindas 2012-02-01 09:36:46