Android 代码混淆并加花
上一篇 /
下一篇 2017-09-07 14:40:07
/ 个人分类:安全测试
APK安全: 代码混淆且加壳防止反编译
1、用到的工具
2、代码混淆并加花
- 添加花指令:在Android项目添加一个永不能执行到class;如下。也可以通过proguard-android.txt配置文件配置需要保留的class。参考https://developer.android.com/studio/build/shrink-code.html
package com.example.oscar.oscarapp;51Testing软件测试网W
|/](~%Z\1E5sFq$O|
/** * Created by oscar on 2017-09-06. */
7F_:W`w5v~U}}:YiS0import android.support.annotation.Keep;51Testing软件测试网|} k9O{K/Fl-DC
@Keep //混淆代码时保留完整class代码
(B8L~R tS3u0public class BadCode {51Testing软件测试网|ZfF%N/C#~EQ
o
public void sCode(){
System.out.println("111111");
System.out.println("111111");
System.out.println("222222");
System.out.println("222222");
} }51Testing软件测试网-l8J
sp1_y
2、设置编译时进行代码混淆:修改build.gradle 文件minifyEnabled true;如下
b|~d`B(S0K
s#bzB:L0buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
oo!H*Czu+C0c2m
v4p03、通过Android Studio 进行编译打包apk。生成包是经过代码混淆的。
4MOo\_04、通过IDAProv6.8。反编译apk里的classes.dex文件,找到BadCode class函数执行入口地址。
^5U+J1t2?
N;U05、通过C32Asm 使用十六进制打开 classes.dex文件,按快捷键“Ctrl + G”,定位到BadCode class函数执行入口地址 改为“12 01 38 01 03 00 FF FF 00 00 00 00 00 00” 并保存
s#hm)^v-t1j2j2jk06、把修改后的dex文件拖入DexFixer进行修复
d,n L4bdDj4O&p07、把修复后的dex文件覆盖apk原有的dex文件,删除META-INF签名文件,使用签名工具Windowssigntool,对apk重新签名51Testing软件测试网/E%nt1N*XocO
8、至此,混淆与加壳都已完成,并可以使用Android手机进行安装。用dex2jar-0.0.9.15反编译会报错。51Testing软件测试网.lA3U+t9d
收藏
举报
TAG: