混淆Xamarin应用程序

问题描述 投票:3回答:4

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

我正处于一个即将在Play商店发布的应用程序的最后阶段。但是,我担心代码是否可以被其他人提取和查看。

请告知,如何从其他人查看代码来保护我的应用程序。

c# xamarin xamarin.android obfuscation
4个回答
6
投票

是的,可以提取Xamarin.Android应用程序的代码。默认情况下,.dll文件只是APK中的资源,可以使用zip实用程序提取它们,并使用例如ILSpy

Xamarin docs解释了如何保护您的申请,包括:

  1. 禁用调试
  2. Obfuscate with Dotfuscator
  3. 将程序集捆绑为本机代码(但见下文)
  4. 使用AOT(本机)编译(但见下文)

请注意,#3需要企业许可证,只需将.NET .dlls放在APK的更深层;它仍然可以提取它们,它们仍然是未经过模糊处理的。

请注意,#4明确列为不应在生产中使用的实验性功能。

完全披露:我为PreEmptive Solutions工作,我们制作Dotfuscator。


3
投票

您可以选择Ahead Of Time(AOT)编译。 enter image description here这不会阻止提取,但会使它变得非常困难。最重要的是,你可以使用Crypto Obfuscator


0
投票

我建议阅读有关SafetyNet的内容,它提供了一组服务和API,可帮助保护您的应用免受安全威胁,包括设备篡改,错误的URL,可能有害的应用程序和虚假用户:https://developer.android.com/training/safetynet/index.html


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.