admin管理员组文章数量:1572806
文章目录
- 概要
- 步骤
- 1.环境准备
- 2.配置PC端环境
- 3.配置手机端代理
- 4.配置抓取手机端https请求
- 5.Android Studio配置network_security_config
- 小结
概要
项目上经常会有需要对App端应用进行抓包去分析请求的情况,这里分享一下Charles抓包手机应用的教程
步骤
1.环境准备
- 电脑安装Charles客户端 https://www.charlesproxy/
- 电脑与手机连接同一WiFi
- 完全关闭电脑防火墙
2.配置PC端环境
-
PC端配置http代理:启动Charles->Proxy->Proxy Setting,端口默认8888即可
-
查看并记录IP地址,之后手机端设置代理时要用到,点击Help->Local IP Address
-
安装支持手机端抓包的证书,点击Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser
-
PC端配置Https抓包,点击Help->SSL Proxying->Install Charles root Certificate,安装证书
- 设置SSL Proxy Setting,点击Proxy->SSL Proxy Setting,配置白名单,没有443就手动添加一下,至此Charles客户端配置完毕
3.配置手机端代理
这里我用的是小米手机,以此为例,进入 设置->WLAN->进入WIFI设置界面->点击代理
这时Charles客户端会弹出提示,一定要点击允许(Allow)
至此已经可以抓取http请求的包了
4.配置抓取手机端https请求
如果想抓取https请求,需要像在电脑端一样,在手机端也需要安装证书
- 保持之前的wifi设置不变,在手机浏览器中访问地址 http://chls.pro/ssl
- 此时会下载xxx.crt文件,然后我们安装此证书
安装完毕后理论上就可以抓包我们开发的APP的https请求了,为什么说是理论上呢,因为目前的Android版本需要手动配置network_security_config,才可以抓包,正常的线上环境是不可以抓包,所以有了接下来的配置
5.Android Studio配置network_security_config
- 打开android工程,进入src->main->res->xml(没有该文件夹就创建一个)
- 在xml文件夹中创建 network_security_config.xml文件,文件代码如下
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>
- 在 AndroidManifest.xml文件中 application标签中加入此属性
android:networkSecurityConfig="@xml/network_security_config"
- 重新打包App即可抓包请求
小结
以上就是Charles抓包的全部配置,需要注意的几个点
- 要把防火墙彻底关闭
- 提示是否允许手机端链接的弹窗一定要有,否则就是配置不正确
- Android App要配置 network_security_config
版权声明:本文标题:Charles抓包App教程 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727734807a1127323.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论