charles抓包
charles抓https包
参考这个来配置
https://blog.youkuaiyun.com/qq_20113327/article/details/122299433
下载,安装,然后就是配置,抓包原理就是手机用电脑的网络走代理。
这里说下需要注意的细节
1、在charles里helps里面可以直接看电脑的ip
2、如果手机浏览器上输入chls.pro/ssl无法下载证书,可以直接导出证书,然后发到手机上,注意证书后缀要改,不然可能安装不了
adb push /Users/linux/Downloads/pr-charles-ssl-proxying-certificate.crt /storage/sdcard0/Android/
3、确保手机和电脑在同一个网段
最简单的方法就是用android studio模拟器,模拟器用的就是电脑的网络,也需要在模拟器的wifi里设置电脑为代理服务器
还有一种方法就是ping看能不能通,手机上adb shell,然后ping 电脑ip
如果这一步都没有通过,那后面也抓不到包啊
4、已经配置证书了还抓不到怎么办?
抓包https最常见的就是这个错误
Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)
https://www.dazhuanlan.com/strcpy/topics/1474217
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
也就是抓取app的包的时候,可以增加如下配置,配置一个xml来信任证书
在android工程中新建一个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" />
</trust-anchors>
</base-config>
<!-- https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/-->
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
然后在引用它
<application
android:networkSecurityConfig="@xml/network_security_config">