关于Android开发来说,除了AS自带的
Profiler
外,Charles
是比较合适咱们的抓包东西了,它能够让咱们明晰的查看客户端运用的http协议、TLS协议、恳求头号信息,还能显示咱们的设备型号,并修正入参进行调试、模拟慢速网络环境、断电调试以及经过装置CA证书调试Https
等实用技术,下面我做了个简单介绍,方便自己记载,没用过的同学也能够看下快速入门。
Charles 官网
下载相应体系的Charles 装置包,装置即可。
Charles的实质是一个HTTP和SOCKS的署理服务器
。
署理恳求和呼应,使Charles能够在恳求从客户端传递到服务器时检查
和更改
,服务器传递到客户端的呼应也是如此。
Charles菜单意义
顶部菜单
比较常用的菜单是Proxy和Tools。
Proxy菜单
-
Start/Stop Recording:开端/中止记载会话。
-
Start/Stop Throttling:开端/中止节省。
-
Enable/Disable Breakpoints:敞开/封闭断点模式。
-
Recording Settings:记载会话设置。
-
Throttle Settings:节省设置。
-
Breakpoint Settings:断点设置。
-
Reverse Proxies Settings:反向署理设置。
-
Port Forwarding Settings:端口转发。
-
Windows Proxy:记载计算机上的一切恳求。
-
Proxy Settings:署理设置。
-
SSL Proxying Settings:SSL 署理设置。
-
Access Control Settings:拜访操控设置。
-
External Proxy Settings:外部署理设置。
-
Web Interface Settings:Web 界面设置。
我在运用中以为比较常用的是Throttle Settings(节省设置)
Throttle Settings 和 Start/Stop Throttling 配合运用,在 Start Throttling 的状况下,能够经过 Throttle Settings 装备 Charles 的网速模拟装备。Throttle Settings 的视图如下图所示:
勾选 Enable Throttling 启用网速模拟装备,在 Throttle Preset 下选择网络类型即可,具体设置能够依据实际情况自行设置。假如只想模拟指定网站的慢速网络,能够再勾选上图中的 Only for selected hosts
项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。
Throttle Settings 视图中的选项意义如下:
- Bandwidth:带宽
- Utilistation:运用百分比
- Round-trip:往返推迟
- MTU:字节
Tools菜单
-
No Caching Settings:禁用缓存设置。
-
Block Cookies Settings:禁用 Cookie设置。
-
Map Remote Settings:长途映射设置。
-
Map Local Settings:本地映射设置。
-
Rewrite Settings:重写设置。
-
Black List Settings:黑名单设置。
-
White List Settings:白名单设置。
-
DNS Spoofing Settings:DNS 欺骗设置。
-
Mirror Settings:镜像设置。
-
Auto Save Settings:主动保存设置。
-
Client Process Settings:客户端进程设置。
-
Compose:修正修正。
-
Repeat:重复发包。
-
Repeat Advanced:高档重复发包。
-
Validate:验证。
-
Publish Gist:发布要点。
-
Import/Export Settings:导入/导出设置。
-
Profiles:装备文件。
-
Publish Gist Settings:发布要点设置。
图标菜单
-
:清除捕获到的一切恳求
-
:启用SSL署理
-
:红点状况阐明正在捕获恳求,灰色状况阐明现在没有捕获恳求。
-
:灰色状况阐明是没有敞开网速节省,绿色状况阐明敞开了网速节省。
-
:灰色状况阐明是没有敞开断点,赤色状况阐明敞开了断点。
-
:修正修正恳求,点击之后能够修正恳求的内容。
-
:重复发送恳求,点击之后选中的恳求会被再次发送。
-
:验证选中的恳求的呼应。
-
:常用功用,包含了 Tools 菜单中的常用功用。
-
:常用设置,包含了 Proxy 菜单中的常用设置。
抓取 Https
在Android设备上抓取https的数据时, 首要需要确保电脑和手机要在同一个路由器网络下。
PC端
-
需要关掉防火墙,或许将Charls答应经过防火墙。
-
翻开 Charles 的署理功用:经过主菜单翻开 Proxy | Proxy Settings 弹窗,填入署理端口(端口默以为
8888
,不用修正),勾选Enable transparent HTTP proxying
。 -
假如不需要抓取电脑上的恳求,能够撤销勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
-
装置 Charles 证书:经过 Charles 的主菜单Help | SSL Proxying | Install Charles Root Certificate装置证书。(需要将证书设置为信任可参阅 Charles证书装置 )
-
翻开SSL署理
Proxy
->SSL Proxying Settings
->SSL Proxying
->Add
Host: 为需要过滤的域名地址,*
表示不过滤
Port: 固定为443
,*
表示恣意端口
手机端
-
经过 Charles 的主菜单Help | Local IP Address或许经过命令行东西输入
ipconfig
查看本机的 IP 地址。 -
设置署理:翻开手机端的 WIFI 署理设置,输入电脑 IP 和 Charles 的署理端口。
-
确保手机经过Charles设置的署理衔接成功后,运用手机上原生的浏览器拜访chls.pro/ssl,装置证书。(假如手机无法完成装置,可经过电脑下载下来并修正后缀为
.crt
,复制到手机根目录进行装置)。 -
现在就能够正常抓取Https包了
文章参阅:
/post/684490… /post/684490…