-
apk包组成:
asset/res:资源文件
lib: so库存放目录,so文件:unix动态连接库(二进制文件)
META-INF:工程属性
AndroidManifest.xml:工程配置
classes.dex:字节码文件(降低冗余)(class文件经过dx工具整合到dex文件中(Dalvik虚拟机能直接执行))
resources.arsc:资源索引表 -
apktool
反编译及打包apk工具
官网:https://ibotpeaches.github.io/Apktool/
命令:java -jar apktool_xxx.jar d -f [包名]
反汇编dex文件后,会得到.smail后缀文件
-
dex2jar + jd-gui
作用:dex2jar工具将dex文件转换成 jar文件,使用jd-gui工具查看jar文件
流程:1、将apk后缀改为rar,并解压
2、命令d2j-dex2jar.bat classes.dex 得到classes-dex2jar.jar文件
3、ju-gui工具打开 -
混淆
android studio 自带混淆:
build.gradle文件中
minifyEnabled 为混淆开关,改为true 则开启混淆
proguardFiles 为混淆规则文件(proguard-rules.pro没有混淆规则时系统默认使用proguard-android-optimize.txt文件混淆规则)
禁用混淆:
1.第三方包
2.反射
3.自定义view
4.注解
5.activity
混淆产出文件:
dump.txt :内部结构说明
mapping.txt :字段映射关系
seeds.txt :未混淆内容
usage.txt :移除的代码
- 加壳
主要分 dex加密和so加密
加壳三个对象:
1.源dex文件
2.壳程序 :解密并加载源dex文件
3.加密程序 :加密源dex文件,合成新dex文件,重新生成apk
网友评论