Android逆向基础入门

Android逆向基础入门
一、基础App数据抓取
 
1、App常用分析工具
 
常用的拦截抓包工具有fiddler、mitmproxy、charles(手机端需和电脑端在同一个网络下,且手机端要配置相应的证书,手机端还要设置手动代理):大部分app使用的数据通信协议基于http/https,可通过抓包查看来模拟url请求。因SSL Pinning导致无法正常抓包时需要对android进行逆向
 
常用的自动化工具有uiautomatorviewer、Appium、Airtest(手机与电脑端通过usb数据线连接,同时手机需要打开usb调试功能进入开发者模式):就相当于web端的selenium
 
2、fiddler抓包工具
 
fiddler安装与使用,不用手动设置代理,打开软件就自动开启了代理
 
3、mitmdump抓包工具
 
mitmproxy安装与抓包分析, 需要手动设置浏览器局部代理不太方便但还行;强大功能在于mitmdump可以实时抓包,然后给python等处理
 
mitmdump实时抓包使用介绍:分析抓包逻辑编写好python处理脚本 > mitmdump -s py文件 -p 端口号 > 滑动app(设置代理)或者web(设置局部代理)
 
4、charles抓包工具
 
charles安装与抓包分析,Charles免费使用30分钟,然后需要重启再次使用,貌似设置了SSL Proxying证书,可以抓SSL Pining的包(低于7版本的安卓系统)
 
5、uiautomatorviewer / appium自动化工具
 
appium相关操作使用,与手机通过usb连接,需要确定要操作的相应的app包名起服务,没有airtest方便;可通过录制功能自动生成python代码
 
appium实战案例1
 
appium实战案例2
 
6、Airtest自动化工具
 
Airtest相关操作使用,与手机通过usb数据线连接,可以操作多个手机实现群控,可通过录制功能自动生成python代码,功能十分强大
 
二、Android_apk逆向
 
1、Android逆向名词
 
每个android app都有对应的安装包,以。apk为后缀
 
反编译工具:jadx、JEB、Apktool:因SSL Pinning导致无法正常抓包时,需要反编译apk文件,还原成可读性高的java代码分析内部逻辑
 
Hook工具:Xposed、Frida:可以通过hook拦截和改写逻辑,获取关键加密数据,hook或模拟Java层和Native层(即so层由C/C++等实现)的代码;其中Xposed只能Hook Java层逻辑,且Xposed整个模块逻辑需要使用Java语言实现;因此Frida更强大、方便、灵活
 
反汇编工具:IDA Pro工具:逆向分析、调试、模拟Native层(so层)的代码实现逻辑
 
2、jadx反编译工具
 
jdk1.8_java环境安装(目录3)
 
adb安装(目录2)
 
jadx工具:jadx-gui反编译图形界面工具,jadx下载 , 解压后运行exe文件,然后打开加载apk文件即可
 
常用功能:文本搜索(导航),右击代码查找方法声明,右击代码查找用例,反混淆(工具),日志查看器(帮助),设置选项里面也有很多功能
 
3、JEB反编译工具
 
(1)JEB常用功能介绍
 
JEB反编译器使用详细介绍
 
JEB下载安装,windows运行。bat文件,然后加载apk文件,即可看到右侧Smali代码,通过编译也可以转到java代码看

推荐阅读