这可以保护我们的apk在android中反编译吗?

Posted

技术标签:

【中文标题】这可以保护我们的apk在android中反编译吗?【英文标题】:Is this possible to protect our apk to decompile in android? 【发布时间】:2017-01-19 14:17:48 【问题描述】:

我创建了一个 android 应用程序,但在该应用程序中我使用的是 url,所以我想保护该 url,因为当我反编译我的 apk 时,java 类 url 内的内容是原样的。

所以我想问一下这是否可以保护该网址?

【问题讨论】:

你可以加密网址。 了解proguard 【参考方案1】:

不,没有办法阻止人们看到您包含在 apk 中的任何数据。您不应该在代码中包含秘密数据。混淆几乎没有帮助 - 它只会给你一种虚假的安全感。

【讨论】:

【参考方案2】:

将 url 存储在 Native lib 文件中 并到达你想要的地方,这样做你需要NDK

【讨论】:

【参考方案3】:

只需在 buildTypes 发布模式的 build gradle 文件中将 minifyEnabled 标记为 true。它会使apk无法查看源代码和decomile。

示例:在 gradle 文件中添加以下行:

buildTypes 
    release 
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    
    //added by me
    debug 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    

【讨论】:

您必须补充一点,仅添加 proguard 并不是一个完整的证明方法,即使 APK 被混淆,也有一些工具可以反编译。 添加 ProGuard 不会阻止对 apk 的反编译。如果您想防止这种情况并在应用程序中加密字符串,您应该检查 DexGuard,ProGuard 的商业变体。

以上是关于这可以保护我们的apk在android中反编译吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android 将 apk 反编译为源码

逆向工程保护

Android 压缩资源不会改变 APK 大小

APK 文件如何包含 DLL 文件? Android可以运行DLL文件吗?

Android .mk文件 如何编译生成apk文件?

如何使 apk 安全。防止反编译