一、Charles抓取http
1. 配置Charles的proxy端口号
路径: Proxy --> Proxy Settting ---> Proxies
这个端口要与手机配置端口一致,一般都是 8888
2. 查看本机的IP地址
方法一:直接在Charles上查看
Help --> Local IP Address
l右边的就是IP地址啦
方法二 :终端命令
Mac端: ifconfig
windows: ipconfig
(无图)
3. 配置手机代理
注意:手机与电脑必须要统一局域网,比如连接同一个WIFI
配置代理:
长按WiFi,然后修改网络
然后代理设置成手动
代理服务器主机名 填写刚刚查询的IP地址:192.168.x.xxx
代理服务器端口 填写一开始设置的端口号:8888
然后保存
Charles会弹出弹窗提示allow 点击allow同意
这时候就可以http的包了
二、Charles抓取https
Android6.0(含6.0)及以下的:
作者懒得贴了,因为没有机器。
Android7.0和以上的:
说实话,我是没有成功的,网络上那多么文章,基本没有用的。原因是证书安装后不是系统证书,自己安装的好像没用。当然root后的手机可以。
下面提供一个方法:仅供参考
解决方案:
确保已正确安装证书, Charles已配置好
使用apktool对apk进行反编译 1apktool d example.apk
修改AndroidManifest.xml配置文件, 在application节点添加一行代码: 1android:networkSecurityConfig="@xml/network_security_config"
新增res/xml/network_security_config.xml配置文件, 内容为下(替换example.com为你要对此APP进行抓包的域名): 12345678 example.com
使用apktool进行编译 1apktool b example
使用ApkSign对第4步编译后的apk进行签名 1java -jar signapk.jar certificate.pem key.pk8 example.apk example.sign.apk
安装第5步的apk进行抓包吧
当然你是抓自己开发的app,在AndroidManifest添加相关代码,和相关文件就可以抓了。(PS:我为什么要抓自己的包啊!!!)
提供官方链接:SSL Certificates • Charles Web Debugging Proxy
Android
As of Android N, you need to add configuration to your app in order to have it trust the SSL certificates generated by Charles SSL Proxying. This means that you can only use SSL Proxying with apps that you control.
In order to configure your app to trust Charles, you need to add a Network Security Configuration Fileto your app. This file can override the system default, enabling your app to trust user installed CA certificates (e.g. the Charles Root Certificate). You can specify that this only applies in debug builds of your application, so that production builds use the default trust profile.
Add a fileres/xml/network_security_config.xml to your app:
Then add a reference to this file in your app's manifest, as follows:
<?xml version="1.0" encoding="utf-8"?><manifest ... ><application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application></manifest>
网友评论