前言
作为一名移动应用开发者,抓包应该是一项必备技能吧,抓包工具Charles(花瓶)、Fiddler、WireShark等。
Fiddler这个软件由于是用C#开发的,所以很依赖win平台,所以移动开发最常用的还是Charles了,由于开发语言是Java,所以具有很好的跨平台性。
WireShark是世界上最重要的网络协议分析仪。它是一个网络封包分析软件,功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。它可以让你看到发生了什么在网络上在微观层面。它是事实上的(而且往往在法律上)在许多行业和教育机构的标准。比较底层专业。
有一段时间没用Charles 了,也换了电脑,需要配置一下,今天下午刚好用到,就记录一下,省得以后忘记,老解决重复的问题。
安装过程
安装配置过程比较简单,简单说一下,主要是记录一下安装使用中间遇到的问题。
Charles 官网
目前最新的版本就是4.6.2.
这是一款付费软件,免费30天吧,以后每次运行只能运行30分钟,并且还有延时,呵呵,需要免费的可以自行查找。
Mac抓包
首先,电脑安装根证书:
打开钥匙串,设置为始终信任。
这时打开Mac OS 代理,电脑一般就可以正常的抓包了,其实Charles安装成功以后就可以了。
不过刚测试了,不按装也是没有问题的,电脑和手机依然可以抓包。
又发现,不按照的话抓到都是乱码的,如下:
不过发现,这个根证书没关,是 SSL Proxying Setting 的问题,
常用的设置一下即可,不过证书最好还是安装信任一下,不过一些APP还是拦截处理过的,想抖音啥也看不了,APP也访问不了。
快手某些还是可以看铭文的:
小度还是正常访问的:
手机抓包
首先要确认手机和电脑同在一个无线网下,安装很简单,和其它软件一样,安装以后使用过程简单概述一下:
- 获取电脑端的ip地址
- 一种方法是直接打开网络偏好设置
- 另一种方法:直接在Charles中,点击Help ->Local IP address获取
- 手机配置代理
找到手机的无线网,点开右边的标滑到最下面,找到配置代理,点开选择手动,服务器输入第一步获取IP,端口8888,和Charles->Proxy->Proxy Setting中端口好一致,点击右上角的存储。
这时候正常的话,Charles就会出现下面的弹窗,点击同意
Deny的话之前记得是可以在Proxy->Access control settings中添加地址的,手机和电脑的IP,现在每次进入没有的话都会弹这个窗的,拒绝的话手机的IP就删掉了,所以必须要点击Allow,手动配置的无效,自测自认为是这样的。
其中还有一种情况是压根这个弹窗就没弹出来,首先要确认手机和电脑是否同在一个无线网下,如果是一个,那就重启电脑和手机,应该可以。这一步必须要通过。
另外,如果没有弹窗在这里安装提示的安装手机的证书,
那么你会发现这个地址 chls.pro/ssl 根本打不开,
可以通过官网的证书下载链接安装:
CA证书下载链接:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/
安装完成以后有可能手机还是抓不了包,有可能提示:'iOS此服务器的证书无效。您可能正在连接到一个伪装成“xxx.com”的服务器,这会威胁到您的机密信息的安全
,如下:
证书安装成功后,以为已经OK了,但是打开APP会报错,因为其中缺少非常重要的一步,这个原因很大可能是手机的证书没有信任,其实上面Charles的弹窗下面已经说的很明白了,当时只是没有注意到
还应该做这么一步操作:设置——通用——关于本机——证书信任设置——打开对应证书的开关,以前是没有的,不知道是从十几以后的系统就这样了,必不可少的一步。
完成这一步,你就大功搞成了,可以开心的去抓包了!!
手机抓包异常
抓包异常
如果照上面的步骤都设置了,但是依然抓不了包,手机也没有网络了,这时候重启一下手机和电脑重新开始就可以了。
其它功能扩展
- 过滤掉不像看的站点,只看某些站点的:
- 修改服务器返回内容,mock / 模拟假数据,勾选Enable Map Local 这样跟后台调试的时候就不用等后台接口都完成才能调试了,只要有数据格式就可以了,自己想怎么玩就怎么玩,调试的时候大有用处,对于一些平常测试不到的情况,异常情况等都可以随意模拟修改,这个功能很实用。
只需要本地创建一个.json文件,和接口关联起来即可,如:。
{
"code": 1,
"msg": "验证码验证成功"
}
- Rewrite 功能,重写替换后台返回的数据
点击某一项:
随意替换成想要的内容。
其它功能自行探索,有时间我也探索一下,随时更新。
后话
谢谢您的阅读,写这篇文章也参考了一些别人的,取众家之长,补己之短,自己亲手实践,总结一下,有不对的地方还请指正。很久没更新文章了,写这篇博客也费了不少时间精力,如果对你有用帮助的话,还请不吝打赏。