Android 中使用 Charles 抓包步骤

Android 中快速使用 Charles 抓包步骤

MAC版下载 Charles 4.6.2 破解版 (http抓包神器)
其它平台请Google

抓包分析 Http 报文,直接上步骤抓起来先。原理在底部说。

步骤流程

1、保存 Charles 证书 ,Help -> SSL Proxying -> Save Charles Root Certificate 。 保存之后证书需要 拷贝到 Android 项目 res/raw 中。

2、开发应用需要信任 Charles 提供的证书 ,在Android 文件配置中 添加xml 配置 该证书,并且应用到 application 中

   <application  android:networkSecurityConfig="@xml/network_sercurity_config" ></application>

Android 中使用 Charles 抓包步骤

3、查看端口,选择 Charles -> Proxy -> Proxy Settings , 代理端口号默认 8888 可不修改。设备wifi 连接时需要配置 代理使用到此端口

Android 中使用 Charles 抓包步骤

4、查看本地电脑 IP 地址 Charles ->Help -> Local IP Address ,或者命令行窗口查看 ifconfig

5、在你需要调试的应用设备上,打开 WiFI 连接, 当前已连 Wifi 打开高级 代理服务设置。 通过手动配置添加 , 上面说的电脑的 本地IP + 代理端口号 ,保存

Android 中使用 Charles 抓包步骤

6、第一次使用时候会弹出对话框,是否信任 Charles 发送的请求。此时需要点击 Allow 才可以。 允许Charles 信任用户证书 (没有添加会报错 )。

7、 操作应用 调试即可

Android 中使用 Charles 抓包步骤

8、弱网调试 Charles -> Proxy -> Throttle Settings ,选用最低 56kbps , 操作 app 查看 响应时间 。 测试是网络接口响应慢,还是程序慢进而优化程序。

Android 中使用 Charles 抓包步骤

其实 Charles 还有很多功能。学以致用,去摸索学习叭

Charles 抓包 原理

  • 1、拦截请求,代理 client 向 server 发送请求

  • 2、拦截 server 响应,拿到server 返回的公钥,并返回自己的公钥证书。目的是为了接下来的流程中加密会话密钥

  • 3、client 需要安装 charles 证书,并添加信任,否则会报证书无效错误

    client 生成随机数(会话密钥),并使用charles 公钥加密发送到 server

  • 4、再次拦截请求,用自己的私钥解密会话密钥,并使用前面的拿到的server 公钥加密会话密钥,发送到server

  • 5、server 使用自己的私钥解密会话密钥

  • 6、使用会话密钥加密response 并返回

  • 7、再次拦截响应,使用会话密钥解密 response,展示明文,从而达到https抓包的目的。

引用下来自慕课移动端架构师中的图,慢慢体会。Android 中使用 Charles 抓包步骤

上一篇:Charles(HTTP抓包工具软件)中文版


下一篇:学完这篇Charles抓包教程,我直接把fiddler卸载了