如何在Android中加密类文件(.class)?

时间:2017-02-08 10:56:19

标签: java android compilation reverse-engineering

请参阅此处的第二点(加密类文件)如何使apk安全。防止反编译如何在Android中加密和解密类文件?

3 个答案:

答案 0 :(得分:0)

Code Signing是一个让您的apk文件安全的选项。它确保源代码的真实性和完整性。您可以通过以下链接了解更多详情

Sign your app

现在讨论保护apk文件不进行反编译的问题,这是不可能的,但你仍然可以使用一些预防措施来使其变得困难。请通过以下链接

How to avoid reverse engineering of an APK file?

答案 1 :(得分:0)

您可以使用proguard(免费)和dexgaurd(企业)

对代码进行模糊处理

在你的应用程序gradle中:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true

        proguardFile 'proguard-google-play-services.pro'
        proguardFile 'proguard-butter-knife.pro'
        proguardFile 'proguard-volley.pro'

    }
    debug {
        minifyEnabled false
    }
}

在发布模式下使用此代码进行代码混淆。

某些文件不得混淆,因此您可以在app文件夹的根目录中创建一些文件,并且可以设置哪个文件不得混淆

凌空文件,例如:

-keep class com.android.volley.** {*;}
-keep class com.android.volley.toolbox.** {*;}
-keep class com.android.volley.Response$* { *; }
-keep class com.android.volley.Request$* { *; }
-keep class com.android.volley.RequestQueue$* { *; }
-keep class com.android.volley.toolbox.HurlStack$* { *; }
-keep class com.android.volley.toolbox.ImageLoader$* { *; }

通常在库自述文件中,他们会编写您必须编写的内容,以防止对某些类进行模糊处理。 也认为你只能让它变得更难但不是不可能。

答案 2 :(得分:0)

如果您想要更高级别的混淆,可以尝试使用此工具: Bg+ Anti Decompiler/Obfuscator