安卓逆向破解
此处主要介绍安卓的逆向破解方面的内容:
概述
- 安卓的逆向破解
- 静态分析
- 按文件格式类型分
- 针对
apk- 查看apk信息
aapt
- 解包工具:输出
dex、so、smaliapktool
- 反编译工具
- 直接apk转java
jadxJEBGDA
- 直接apk转java
- 查看apk信息
- 针对
dex- 各种导出dex的工具=砸壳工具=脱壳工具
FDex2DumpDexDexExtractor
- 各种反编译dex的工具
- dex转jar
dex2jar
- dex转smali
baksmali
- dex直接转java
jadxGDA
- dex转jar
- 各种导出dex的工具=砸壳工具=脱壳工具
- 针对
jar- jar转java=各种反编译工具
ProcyonCFRJD-GUI
- jar转java=各种反编译工具
- 针对
so库文件=(往往是ARM64架构)的ELF文件- 导出静态资源
readelfobjdumprazbin2
- 反编译代码逻辑
IDAHopperRadare2Ghidra
- 导出静态资源
- 针对
- 涉及子领域
- 反代码混淆
- 按文件格式类型分
- 动态调试
- (绕过限制去)抓包
- 绕过证书绑定的Exposed插件或Frida的脚本
- 反root检测
- 反反调试
- 各种动态调试手段
- 调试smali:
AS+smalidea插件- app进程可调试
- Magisk插件:
MagiskHide Props Config
- Magisk插件:
- app进程可调试
- 调试Frida:
Frida- Frida环境搭建
- Magisk插件:
MagiskFrida
- Magisk插件:
- Frida环境搭建
- 调试lldb:
LLDB - 调试Xposed插件
XPosedEdXposedLSPosed
- 模拟代码执行
UnidbgUnicorn
- 辅助调试工具
adbDDMS
- 调试smali:
- (绕过限制去)抓包
- 输出
- 重新打包apk
apktoolkeytooljarsigner或apksignerzipalign
- 用代码重写逻辑
- Python代码
- C/C++代码
- 改机定制ROM
AOSP源码编译JNI开发NDK开发
- 重新打包apk
- 静态分析
另外:
- 砸壳思路=脱壳方案
- 目前多数都是基于
Hook框架,去从安卓app中导出dex文件- 典型的hook框架
XPosed:从根上hook了Android Java虚拟机Cydia:支持JNI和java层的hook功能
- 再去从dex中转换出java代码
- 典型的hook框架
- 目前多数都是基于
详解
具体内容,详见独立子教程: