混淆 Xamarin 应用程序

3

能否提取Xamarin Android应用程序的代码并进行检查?

我正在完成一个应用程序的最后阶段,很快就会发布在 Play Store 上。然而,我担心其他人可以提取并查看代码。

请指导如何保护我的应用程序,使其不被他人查看其代码。


你是否在使用ProGuard?这里有相关细节(https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/proguard/),它可以用来混淆你的代码。 - Adam T
@AdamT ProGuard 不会混淆 C# 代码。 - Cheesebaron
4个回答

6
是的,可以提取Xamarin.Android应用程序的代码。默认情况下,.dll文件只是APK中的资源,可以使用zip实用程序提取它们,并使用例如 ILSpy 进行检查。 Xamarin文档 解释了如何保护您的应用程序,包括:
  1. 禁用调试
  2. 使用Dotfuscator进行混淆
  3. 将程序集捆绑到本地代码中(但请参见以下说明)
  4. 使用AOT(本地)编译(但请参见以下说明)
请注意,#3需要企业许可证,只是将 .NET .dll 放在 APK 中的一个更深层次;仍然可以提取它们且未进行混淆。
请注意,#4明确列为不应在生产中使用的实验性功能。
全面披露:我为PreEmptive Solutions工作,我们制作Dotfuscator。

3
您可以选择提前编译(AOT)。 enter image description here 这样做无法防止抽取,但会使其变得非常困难。另外,您可以使用 Crypto Obfuscator来加密混淆应用程序。

1
将程序集嵌入本地代码可能也会有所帮助。 - Cheesebaron

0

0

Xamarin Android 应用程序的混淆没有意义(如果您想要,可以打开“启用 ProGuard”选项,但它不会混淆您的代码),最好是打开“将程序集嵌入本机代码”,这将把所有代码转换为二进制 .so 文件。这将使黑客或反向工程师难以阅读该代码并进行 AOT 反向工程,但这是实验性的,并且在更新后可能会对某些设备造成问题。为了安全起见,建议选择“将程序集嵌入本机代码”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接