我想混淆我的应用程序,但我找不到商业用途的免费混淆器。我看到mono支持AOT编译,所以有没有提前使用社区版Xamarin编译我的应用程序?
如果没有:C#(xamarin)有免费的混淆商用于商业用途吗?
注意: 我定位Android
答案 0 :(得分:3)
AOT编译选项需要Enterprise许可证或更高版本。 AOT编译仅在项目配置为发布模式时可用,默认情况下禁用。
至于混淆,Xamarin.Android不支持开箱即用的混淆。您需要使用第三方混淆工具,如Dotfuscator。他们有关于here的教程。
许多人认为Proguard
会在Xamarin.Android项目中混淆他们的代码,但它只适用于Java端。
Xamarin.Android ProGuard配置不会混淆APK,即使使用自定义配置文件,也无法通过ProGuard启用模糊处理。如果您希望使用模糊处理,请参阅Application Protection with Dotfuscator。
答案 1 :(得分:3)
我想澄清Dotfuscator Community Edition(CE)附带的许可限制。 UUioP写道“我知道Dotfuscator,但我实际上正在寻找一个商业用途的免费混淆器。”Dotfuscator CE肯定带有许可限制,排除大多数商业用途场景,但有一个例外(授予 - 这是一个非常狭窄的例外,但可能适用于某些例外)。如果被混淆的代码由Dotfuscator CE用户编写和拥有,则Dotfuscator CE可用于发布商业软件。换句话说,如果您开发自己的应用程序(它是您的应用程序 - 而不是您的雇主),您可以使用Dotfuscator CE来混淆您的应用程序 - 即使它是出售或其他“商业/生产”用途。请参阅(Re) Introducing Dotfuscator CE - 在帖子结尾处解释许可条款。
答案 2 :(得分:2)
Xamarin的AOT:
这取决于您是针对Android还是iOS。
正如@Jon Douglas在回答中所述, Android Xamarin的AOT目前仅限于企业许可证。 (提示:您可以使用限时企业许可试用版测试此企业版功能。)
iOS 另一方面,Xamarin中的AOT是每个iOS版本的一部分,因此您可以免费获得社区许可。但请注意,完整的.Net程序集仍包含在iOS发行版中,因此无法实现AOT"混淆"在iOS中。 :/
<强>模糊处理:强>
ConfuserEx是一个伟大的.Net开源混淆器,具有MIT许可证:
https://github.com/yck1509/ConfuserEx/
我还没有在Xamarin应用程序中端到端测试ConfuserEx,但到目前为止看起来很有希望......(注意,很多人都指出,ConfuserEx有点&#34;令人困惑&# 34;使用......)