首页 > 解决方案 > 是否有任何理由混淆 Xamarin Forms、Android 应用程序?

问题描述

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

https://docs.microsoft.com/en-us/xamarin/android/deploy-test/release-prep/index?tabs=windows#protect-the-application

https://docs.microsoft.com/en-us/xamarin/android/deploy-test/release-prep/index?tabs=windows#protect_app

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

https://www.preemptive.com/products/dotfuscator/compare-editions

我的问题是,由于应用程序最初是 C#,我假设为 Android 手机转换为 Java,是否有任何理由使用这样的产品进行混淆?将 Forms 应用程序部署到 Android 的人们通常会使用这些产品吗?

标签: xamarinxamarin.forms

解决方案


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

  1. 重命名为 .zip
  2. 解压
  3. 访问 zip 中的 DLL(是的,它们仍然是 C# DLL)
  4. 使用 ILSpy 或类似工具对代码进行逆向工程。

主要风险是获取硬编码的秘密(API 密钥)等 - 这可以通过将它们存储在文件中并在运行时加载它们来缓解,这样它们就不再在代码中可见。

混淆只会使上面的第 4 步变得更加困难并且花费更长的时间。它不会阻止一个真正坚定的人获取代码。


推荐阅读