本文从五个维度来讲解Android逆向, 每个维度尽量分'原理', '工具', '实例'三个方面....反编译
静态分析
动态分析
重编译
Docker
1.反编译
1.1 原理
Android App正向编译
说到反编译, 先来看下正向编译, 如上图, 正向编译是
java -> class -> dex...-> apk
反编译和正向编译稍有不同, 反编译可以分成两类:
java apk
这种方法是将dex文件转为smali, smali是Dalvik虚拟机的汇编语言...Android静态分析步骤:
反编译apk程序
查看Application类(在Activity启动之前, 一般加固/授权放在这里)
查看MainActivity类
找关键代码
反静态分析:
代码混淆(...这个dex有脱壳逻辑, 程序运行时, 首先运行这个脱壳dex, 脱壳dex从dex尾部获取到要加密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行