Charles抓取App应用包

前言

本文对Android8系统抓包app的相关数据包为例.

配置Charles

去官网下载Charles
https://www.charlesproxy.com/
启动后配置

首先设置代理
菜单栏上选择“Proxy”->“Proxy Settings”


image.png

设置抓取所以端口的包
Proxy -> SSL Proxying Settings -> SSL Proxying -> Enable SSL Proxying


image.png

电脑上证书安装


image.png

image.png

image.png
image.png
image.png

image.png

image.png

手机上配置

先wifi设置代理

确保手机与电脑在同一网络下能ping通,使用ipconfig查看自己电脑的ip


image.png

在手机打开wifi设置,设置wifi代理为手动

image.png

主机名写我们pc的ip,端口写前面配置的端口
手机、Charles匹配成功后,Charles工具显示弹窗,询问是否允许,点击Allow按钮

image

此时就能进行http的抓包了

手机上安装证书
手机打开浏览器输入网址:chls.pro/ssl
进入后会自动弹出下载,点击下载后的证书进行安装。这里手机不一样会有一些出入,不过基本都是让你设置一个密码后安装证书
安装成功后你可以在手机的“信任的凭据”的“用户”中看到前面安装的证书

到这里就可以进行https的抓包了。但app的包不能抓取。

Android 7.0之后https的ssl pinning

对于Android 7.0 (API 24) 之后,做了些改动,使得系统安全性增加了,导致:

APP 默认不信任用户域的证书
-》之前把Charles的ssl证书,安装到 受信任的凭据 -> 用户 就没用了,因为不受信任了
只信任(安装到)系统域的证书
导致无法抓包https,抓出来的https的请求,都是加了密的,无法看到原文了。app甚至会无网络。
解决方案就是将证书放到受系统信任的系统证书中去(手机需root)

这里需要使用OpenSSL计算出证书在系统证书目录的名称,修改证书名称后放入到/system/etc/security/cacerts/(具体操作下面的链接已经给出)
注意操作system需要重新挂载

mount -o rw,remount /
//操作完成后恢复
mount -o ro,remount /

上面引用 adb重新安装失败-挂载:“系统”不在/ proc / mounts中

Move Certificates

我们就不用这么麻烦去计算移动了,Magisk已经提供了一个模块将我们的用户证书放入到系统证书,这个模块就是Move Certificates。

下载该模块需要科学上网升级Magisk版本


image.png

安装后重启,就可以成功抓取到App的包了

参考

安卓使用charles抓包https报错
charles证书安装
app抓包利器:Charles

你可能感兴趣的:(Charles抓取App应用包)