本文记录下抓包的安装和使用过程,以防自己忘记。如有侵权,请及时联系,立即删除
第一步:下载安装
网上很多教程,就不一一讲解了
第二步:安装完成
打开charles ---> help---> register,输入账号和密码,这个自己度娘,我也是用的网上的资源。
第三步:查看自己IP地址
第一种打开终端输入
ifconfig | grep "inet " | grep -v 127.0.0.1
前面就是ip地址
ip
第二种
打开网络偏好设置-高级-TCP/IP
IP
第四步:
勾选macOS Proxy
image.png
第五步:手机端连入和电脑端一样的wifi
在代理选择手动,主机名写电脑ip,端口填入8888,确定
在电脑端会弹出弹窗,选择allow就可以了
在电脑端就能看到很多接口的访问了
image.png
选择你需要关注的接口,右键-foucs,就会单独显示出来
这时候就能快乐的抓包了
image.png
unknown 破解大法
在自己开发的时候,有些包是抓不了的。显示unknown。
具体解决方案可以看下面链接,主要学会如何将ssl证书导入手机。
解决Charles https抓包显示<unknown>
基本上是能解决部分问题,本人是做安卓开发,在安卓7.0以上的时候抓包是抓不到的,自己开发的app也不行。看网上有一种解决方案是这么解决的。
1.在项目res目录下新增一个文件夹,命名xml,并且新建一个xml文件,可以命名为network_security_config.xml(名字可修改)
2.network_security_config.xml 里面添加内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">请求域名</domain>
<trust-anchors>
<certificates src="@raw/证书"/>
</trust-anchors>
</domain-config>
</network-security-config>
//证书名称 - 在charles里面点击Save Charles Root Certificate.
3在application里面
android:networkSecurityConfig="@raw/network_security_config"
这种方法我当时实验是不ok的
将Charles-Proxy-macOS Proxy 一定要勾选
我用的是下面的方法,感谢大佬的分享。
Android7.0及以上https无法抓包
还是在上面的network_security_config配置
以下内容引用自Android7.0及以上https无法抓包
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
只在android:debuggable为true时才生效的配置:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 支持 Android 7.0 以上调试时,信任 Charles 和 Fiddler 等用户信任的证书 -->
<debug-overrides>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Android 9.0允许部分 http 请求
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 支持 Android 9.0 以上使用部分域名时使用 http -->
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">sample.domain</domain>
</domain-config>
<!-- 支持 Android 7.0 以上调试时,信任 Charles 和 Fiddler 等用户信任的证书 -->
<debug-overrides>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
当然最后还是要在application的android:networkSecurityConfig引用上面文件。
网友评论