Android 代码混淆并加花

上一篇 / 下一篇  2017-09-07 14:40:07 / 个人分类:安全测试

APK安全: 代码混淆且加壳防止反编译

1、用到的工具

2、代码混淆并加花

  1. 添加花指令:在Android项目添加一个永不能执行到class;如下。也可以通过proguard-android.txt配置文件配置需要保留的class。参考https://developer.android.com/studio/build/shrink-code.html

package com.example.oscar.oscarapp;

6U*i^9^ f)n|0

/** * Created by oscar on 2017-09-06. */

x8WU&]:lt0

import android.support.annotation.Keep;51Testing软件测试网$c.m]7v0r

@Keep //混淆代码时保留完整class代码

|y/H4We4g {0

public class BadCode {51Testing软件测试网iI#z} m&kZit

public void sCode(){

    System.out.println("111111");
    System.out.println("111111");
    System.out.println("222222");
    System.out.println("222222");

} }

].F#`xI+Vd0

2、设置编译时进行代码混淆:修改build.gradle 文件minifyEnabled true;如下

HV \$[/e0
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }
}

}

1_5W9lHZ,\i3P0

3、通过Android Studio 进行编译打包apk。生成包是经过代码混淆的。

0@!e!Kc/@)L{}0

4、通过IDAProv6.8。反编译apk里的classes.dex文件,找到BadCode class函数执行入口地址。

&J"M9LJ:E%Ni3HY0

5、通过C32Asm 使用十六进制打开 classes.dex文件,按快捷键“Ctrl + G”,定位到BadCode class函数执行入口地址 改为“12 01 38 01 03 00 FF FF 00 00 00 00 00 00” 并保存

6y,?4@!f&ieE'@0

6、把修改后的dex文件拖入DexFixer进行修复

#|$~6cI nK@)Y0

7、把修复后的dex文件覆盖apk原有的dex文件,删除META-INF签名文件,使用签名工具Windowssigntool,对apk重新签名

&z#V)}7c{&A0

8、至此,混淆与加壳都已完成,并可以使用Android手机进行安装。用dex2jar-0.0.9.15反编译会报错。

%o;yw|`3tU*G0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar