混淆Xamarin应用程序

时间:2017-05-19 08:36:28

标签: c# xamarin xamarin.android obfuscation

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

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

请告知,如何从查看代码的其他人那里获取我的应用程序。

4 个答案:

答案 0 :(得分:6)

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

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

  1. 禁用调试
  2. Obfuscate with Dotfuscator
  3. 将程序集捆绑为本机代码(但见下文)
  4. 使用AOT(本机)编译(但见下文)
  5. 请注意,#3需要企业版许可证,只需将.NET .dll放在APK的更深层;它仍然可以提取它们并且它们仍然没有被混淆。

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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