apk加固

作者: Simplelove_f033 | 来源:发表于2020-05-27 19:14 被阅读0次

  android应用版本在发布时,为了防止反编译,需要对应用加固,目前常用的反编译工具为:

1、apktool

    主要用于资源文件的获取,  常用的为:java -jar apktool_2.4.0.jar d app-debug.apk -o dir

2、dex2jar

      将apk中的dex文件编译成jar文件。常用的为:d2j-dex2jar.bat app-debug.apk -o app-debug.jar

3、jd-gui

        查看反编译后的jar中的class

4、jadx

    直接查看资源与代码

5、enjarify

    将apk反编译成java源码 如:enjarify *.apk -o out.jar

由于那么多的反编译工具, 结合目前情况, 我总结apk加固的策略, 本人对于apk加固的重点在两个放的,第一 、Proguard 配置 第二、dex加密

Proguard的使用与配置

    Proguard是一个代码优化和混淆工具。能够提供对Java类文件的压缩、优化、混淆,和预校验。压缩的步骤是检测并移除未使用的类、字段、方法和属性。优化的步骤是分析和优化方法的字节码。混淆的步骤是使用短的毫无意义的名称重命名剩余的类、字段和方法。压缩、优化、混淆使得代码更小,更高效。、

在项目中开启Proguard.在gradle中设置为

        buildTypes {

        release {

            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

        debug {

            minifyEnabled true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

    }

下面是Proguard 一些配置:

-keep 指定类和类成员(变量和方法)不被混淆。

-keep class com.dongnao.proxy.guard.test.Bug

(保护了类名)

-keep class com.dongnao.proxy.guard.test.Bug{

  public static void *();

}

(保护了 public static void的没有参数的函数)

-keep class com.dongnao.proxy.guard.test.Bug{

  *;

}

(保护所有)

-keepclassmembers 指定类成员不被混淆(就是-keep的缩小版,不管类名了)。

-keepclassmembers

class com.dongnao.proxy.guard.test.Bug

(都被混淆了)

-keepclasseswithmembers 指定类和类成员不被混淆,前提是指定的类成员存在。

-keepclasseswithmembers class com.dongnao.proxy.guard.test.Bug

(保护类名,但是没指定成员,所以函数名被混淆)

-keepclasseswithmembers class  com.dongnao.proxy.guard.test.Bug{

native <methods>;

}

dex加密

在考虑到app逆向问题dex加密处理是非常有必要的, 那么dex采用什么方式加密,加密之后怎么样打包在apk里, apk怎么样解析dex等一系列问题, 首先dex加密方式, 我这里采用AES,. 第二dex在什么时候加密, 加密如何打包进apk呢,要想解决这问题,就需要了解一下Dex文件加载过程: 

相关文章

  • Android加壳脱壳

    Android 加固与脱壳 加固与脱壳常用加固 so 文件特征分析 apk 加固动态调试分析 apk 加固-环境搭...

  • 安卓apk加固之后再次签名的全过程

    安卓apk上架之前需要对之前的apk加固,以应用宝为例 后台将apk包上传之后得到加固之后的apk包 对没有加固的...

  • apk重新签名

    在上传各大安卓应用市场的时候, 没有加固的apk是不允许提交的,他们会帮我们加固好apk,但是加固完之后的apk是...

  • Android 数据安全

    代码混淆 & apk的加固 常用加固平台:爱加密、360加固、腾讯加固、梆梆加固 Android应用加固原理 网络...

  • Android-APK加固

    学习APK加固,首先我们需要了解APK的构造。才能了解我们需要加固什么,怎么保护我们文件信息。 将APK解压 目录...

  • 安全

    加固针对未签名的apk进行加固,可以实现对apk的加壳,运行时加固:请求、缓存文件等进行加密非运行时加固:针对de...

  • Android APK 加固重新签名

    APK 加固流程 打包APK 通过 ./gradlew assembleRelease 命令打包,此时的apk没有...

  • AndStudio生成的Key环境下二次打包APK

    前言: 把apk上传到360平台时遇到了360强制加固apk,然后返回给了一个新的加固好的APK(未签名)的情况,...

  • Android 打包加固签名那点事儿

    android apk发布应用市场前,像360市场需要对apk进行加固再重新签名,可以使用官方下载的360加固助手...

  • APK加固

    APK签名之keytool生成keystore和jarsigner签名apk网址::http://www.ttta...

网友评论

      本文标题:apk加固

      本文链接:https://www.haomeiwen.com/subject/skhonqtx.html