利用Charles和Mumu模拟器进行安卓应用软件抓包
现代Android应用普遍采用SSL/TLS加密通信,并启用证书绑定(Certificate Pinning)机制。因此要对安卓应用抓包,就需要有一个https代理,通过这个中间人接送安卓应用发出的数据,然后把它传给相应的服务器,同时把解密后的通信数据显示出来。
我们用Charles来充当这个中间人,Mumu模拟器来模拟运行安卓应用的平板和手机。
1、MuMu模拟器12开启root
打开MuMu模拟器右上角菜单-设置中心,勾选开启手机ROOT功能,并将磁盘改为可写系统盘,保存设置后重启模拟器;


2、获取并安装Charles
前往Charles官网获取最新版本安装包
https://www.charlesproxy.com/
3、设置Charles
在Charles主页面点击顶部菜单栏— Proxy(代理)— Proxy Settings(代理设置),设置Port(代理端口号)为8888;

返回Charles主页面,点击顶部菜单栏— Proxy(代理)— SSL Proxying Settings(SSL代理设置),勾选启用SSL代理,添加主机和端口都为*,并保存;

返回Charles主页面,点击顶部菜单栏— Help— SSL Proxying — Install Charles Root Certificate,安装证书,完成后重启Charles即可。

4、安装模拟器证书
在Charles主页面点击顶部菜单栏—Help— Save Chales Certificate—保存到本地,如保存为Charles.pem;

安装OpenSSL,可到官网下载安装
https://slproweb.com/products/Win32OpenSSL.html
进入OpenSSL的bin目录,拷贝Charles.pem到此目录下,打开cmd界面(命令提示符界面),进入此bin目录,输入以下命令:
openssl x509 -inform PEM -subject_hash_old -in Charles.pem
若输出结果第一行类似:34e8954e,则将Charles.pem更名为 34e8954e.0;
注:这个已更名的证书可以重复使用(过期后再重新生成即可),可以存放在方便的位置以便后续使用。

给模拟器安装证书(计算机本机IP为192.168.1.124,模拟器通过桥接方式连接网络,IP地址是192.168.1.238)
用adb命令连接模拟器,模拟器地址和adb端口可以在设备诊断中找到

安装证书(d:\34e8954e.0)到模拟器

5、配置模拟器
配置模拟器的wifi代理,让其将数据发给Charles
点模拟器桌面-设置

点网络与互联网—互联网,点击WiFi右侧设置,进入WiFi详情页面并点击右上角编辑,打开高级选项,将代理切换为手动,代理主机名填入Charles运行主机的IP地址(192.168.1.124),代理端口填入8888之后保存;

大功告成,在Charles上就可以抓包了。
发表评论