对于一个Android开发者来说,抓包工具的使用是必备的元素之一。目前主流的抓包工具有Charles和fiddler。今天主要介绍Charles的安装使用。以下主要介绍抓取https的接口。http的可以直接使用。
一,下载安装Charles。如果没有,可以在底部留下你的qq。我给你发百度云的下载链接。解压即可用。
二,点击顶部的help--->ssl Proxying--->install Charles Root Certificate 出现如下图所示界面
image.png
点击安装证书,如下图选择安装到本地计算机,然后一路确定,最后完成。
image.png
三,点击顶部的help--->ssl Proxying--->install Charles Root Certificate on a Mobile Device or Remote Browser,出现如下界面
image.png
在手机浏览器中输入如上图箭头中所示的地址,下载完成后直接安装即可。如果是小米手机,(如我现在使用的红米6pro),则直接下载后的证书无法安装。这个时候需要在手机中下载一个谷歌浏览器(chrome浏览器),然后在浏览器中输入以上箭头所指的地址,下载后即可以安装证书。
四,点击顶部Proxy---> Proxying Settings,确保prot为8888
image.png
五,点击顶部Proxy--->SSL Proxying Settings,增加Locateion,如下图所示
image.png
六,打开手机的网络设置,增加代理,查看本机ipv4地址,不会请自行百度。端口填写8888.确定保存。
七,如果是Android版本6.0及以下此刻就可以直接抓包使用了。不行就重新断开网络,重新打开一下。到时候Charles上会弹出是否同意抓包的弹窗。点击同意即可。如果是Android版本7.0及以上。此刻抓取https的还是显示unknown。这个时候就需要在本地抓包的项目代码中添加以下内容。
image.png
在res--xml文件夹下创建一个network_security_config.xml的文件
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<!--certificates说明的src=“system"表示信任系统的CA证书-->
<certificates src="system" overridePins="true" />
<!--src=“user"表示信任用户导入的CA证书-->
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>
在AndroidManifest.xml下的application里面添加 android:networkSecurityConfig="@xml/network_security_config"
<application
android:name=".app.Application"
android:allowBackup="true"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
如此就可以实现app抓包了。如果还是不行请关闭防火墙,本地防火墙和360防火墙。
一定要注意点:要将手机连接到对应抓包的ip后,再安装手机证书,不然不能实现https的抓包。
如果有发现错误欢迎指正我及时修改,如果有好的建议欢迎留言。如果觉得对你有帮助欢迎给小星星,谢谢。
网友评论