返回

保护APP信息安全之——Android应用加固策略的实现方案

Android

如今,随着移动互联网的飞速发展,移动应用已成为人们日常生活不可或缺的一部分。然而,随着移动应用数量的激增,应用安全问题也日益严峻。为了保护应用信息安全,Android加固技术应运而生。

Android加固技术是指通过对Android应用进行一系列安全处理,以提高应用的安全性。常用的Android加固技术主要包括dex加固、壳加固、混淆加密等。

本指南将详细阐述三种Android加固方案的实现细节,包括基于dex加固方案的两种具体实现方式以及更加完善的基于gradle实现的方案,帮助您有效保护应用信息安全。

基于dex加固方案的两种具体实现

方案一:手动加固

手动加固方案是指,您需要手动在应用代码中添加加固逻辑。这种方案的优点是,您可以根据自己的需要灵活地定制加固策略。但是,手动加固方案也存在一些缺点,例如,需要您花费大量的时间和精力,而且容易出错。

方案二:基于gradle实现的加固方案

基于gradle实现的加固方案是指,您可以在gradle脚本中配置加固参数,然后通过gradle命令来完成加固过程。这种方案的优点是,可以自动化加固过程,减少出错的可能性。但是,基于gradle实现的加固方案也存在一些缺点,例如,需要您具备一定的gradle知识,而且对加固策略的定制能力有限。

更加完善的基于gradle实现的方案

为了避免在壳Module中引入脱壳工具相关的依赖,可以进一步完善基于gradle实现的加固方案。具体步骤如下:

  1. 在壳Module的build.gradle文件中添加以下代码:
dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation project(':util')
}
  1. 在壳Module的src/main/java目录下创建util包,并在util包下创建Utils类。Utils类的代码如下:
package util;

import android.content.Context;
import android.util.Base64;

public class Utils {

    public static String decode(String str) {
        return new String(Base64.decode(str, Base64.DEFAULT));
    }

}
  1. 在壳Module的build.gradle文件中添加以下代码:
android {
    ...
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
  1. 将脱壳工具相关的代码和资源复制到壳Module的libs目录下。

  2. 在壳Module的AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 在壳Module的src/main/java目录下创建MainActivity类。MainActivity类的代码如下:
package com.example.shell;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import util.Utils;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String str = "VGhpcyBpcyBhIGV4YW1wbGU=";
        String result = Utils.decode(str);
        Log.d("MainActivity", result);
    }
}
  1. 运行壳Module,即可看到加固后的应用运行正常。

总结

通过本指南,您已经详细了解了三种Android加固方案的实现细节。您可以根据自己的需要选择合适的加固方案,以有效保护应用信息安全。