是否有任何理由混淆Xamarin表单和Android应用程序?

是否有任何理由混淆Xamarin表单和Android应用程序?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我在准备应用程序发行说明中看到: 它建议,对于Android应用程序,使用该产品可能是明智的: 我的问题是,由于该应用程序最初是C#我假设它被转换为Android手机的Java,有什么理由使用这样的产品来混淆?将表单应用部署到Android的用户通常使用这些产品吗 混淆是使某些东西难以理解的做法。编程代码经常被混淆,以保护知识产权,防止攻击者对专有软件程序进行反向工程 就我个人而言,我不相信代码混淆,因为这只会延迟反向工程,而不会阻止它,一个知道自己的东西的人很容易就能反向工程代码 通常,

我在准备应用程序发行说明中看到:

它建议,对于Android应用程序,使用该产品可能是明智的:

我的问题是,由于该应用程序最初是C#我假设它被转换为Android手机的Java,有什么理由使用这样的产品来混淆?将表单应用部署到Android的用户通常使用这些产品吗

混淆是使某些东西难以理解的做法。编程代码经常被混淆,以保护知识产权,防止攻击者对专有软件程序进行反向工程

就我个人而言,我不相信代码混淆,因为这只会延迟反向工程,而不会阻止它,一个知道自己的东西的人很容易就能反向工程代码

通常,Android开发人员更喜欢使用Progord(这对您没有帮助!)进行代码混淆,但是还有其他工具,正如您前面提到的

我个人建议您在项目中设置progaud,如果它是Android本机的(Kotlin或Java),那么这应该可以进行代码混淆并减少APK大小。在XamarinAndroid中,您可能需要打开AOT并配置DotFuscator(良好的文档)

如果你还想减少你的应用程序大小,你可以查看我的博客


.

模糊处理不会对最终用户产生任何影响,因此根本没有必要。然而,这可能会影响你的应用程序被反向工程和盗版

很难评估任何单个产品的适当保护级别,您可能会发现最好将时间和/或金钱花在其他地方

与G.hakim所建议的不同,Proguard不会帮助您混淆Xamarin项目,因为它只适用于Java项目,这也意味着您的陈述是错误的,Xamarin。Android不会转换为Java,因为这是一个流行的信念

您可以尝试使用提前(AOT)编译作为防止反编译而不是混淆的手段,但它需要Visual Studio Enterprise edition


您可以在此处阅读有关标准和AOT编译的更多信息:

这取决于您对代码的偏执程度。对于未混淆的代码,获取代码的步骤非常简单,可以访问APK文件:

  • 重命名为.zip
  • 解压
  • 访问zip中的DLL(是的,它们仍然是C#DLL)
  • 使用ILSpy或类似工具对代码进行反向工程
  • 主要的风险是获取硬编码的机密(API密钥)等-这可以通过将它们存储在文件中并在运行时加载它们来减轻,这样它们在代码中就不再可见了

    模糊处理只会使上面的第4步更加困难,而且需要更长的时间。这并不能阻止一个真正有决心的人获取代码