教你简单使用charles 抓取app 里的数据(一般多为http协议)
常用的抓包软件有很多,mac 上的charles ,wireshark 等都是不错的抓包工具,今天就简单介绍一下如何安装,如何使用(已经会的小伙伴就不要拍砖了-绕行吧);
chareles 只适用于抓取http协议的报文;
准备阶段:
charles dmg 安装包 :http://pan.baidu.com/s/1gdu0S4V
charles 破解jar 文件: http://pan.baidu.com/s/1i3gjEfj
https 证书 :http://pan.baidu.com/s/1sjJiZYt
获取https 证书的地址
http://charlesproxy.com/getssl
-------
废话不多说,开始上图
1.下载 必要的 dmg安装包和jar 包
2.安装成功 出现charles app 图
3.此时不要着急打开Charles,因为jar 包还没有更换 ;
找到应用程序的charles ,右键显示包内容,找到 contents\Resources\java 文件夹,将下载的 charles.jar 包 替换原来的charles.jar 包即可,替换过程如下;
注:(如果mac 没有java 环境,mac 会有一个提示,去apple 官网上下载java )如图:
直接下载安装即可 链接:https://support.apple.com/kb/DL1572?locale=zh_CN
4.如果charles 可以正常打开那就算成功了;
5.给手机设置代理
(一般流程是,手机数据包-> 代理 ->互联网)
理论:讲更通俗一点就是,电脑和手机在统一wifi下,也就是所谓的局域网内,将手机的代理指向电脑 ,然后电脑将手机发给它的数据包交给互联网,电脑将从互联网上拿到的数据包,再传递给手机 (我好像比较废话😢)
获取代理服务器的ip(也就是装charles 的电脑IP)
在 系统便好设置 ->网络 里可以看到 (此时我的是 192.168.1.101)
再拿到手机,找到 无限局域网 -> 已连接的wifi-> HTTP 代理->手动 设置 服务器ip 地址 192.168.1.101 (填写装了charles 的那台电脑的ip地址)
端口 填写8888 (端口用于识别哪个服务器,charles 使用了8888 端口)
鉴定按钮(暂时不选)
然后返回就可以了(截图如下)
6.现在可以抓包了(打开charles ,手机上用Sarfari随便打开一个网页 检查能否正常使用)
如果所示:这里以打开百度的网页举例,选择允许才能看到抓到数据包,因为百度的首页用的https 协议,所以里面的内容被 加密了,可以通过安装证书去查看百度的数据(暂时不介绍了,俄了,再写一会儿去吃饭)
截图如下:
简单介绍 了一下安装,如果不清楚的话,可以看这位先生写的博客,很详细,安装包也是他提供的
http://blog.csdn.net/jiangwei0910410003/article/details/41620363
废话不多说,开始简单介绍如果抓包
1.以礼物说 APP 为例子(刚启动就会触发网络请求)下面时抓到的数据
今天就讲到这吧,好饿……
其他功能的话,可以自己多点击试试,比如拿到get 请求的URL ,或者查看post 请求头的参数, Content-Type 等参数
如果你想看tcp/ip 三次握手,四次断开,或者更详细的数据包交互的过程,建议使用一下wireShark ,当然这个软件使用起来也更麻烦一些,还有一本专门介绍如果使用wireShark 的书;
安装 抓取https 的charles 证书
设置代理成功,在charles 中能看到数据包,next 在手机 Safari 浏览器输入地址chls.pro/ssl 或者 http://charlesproxy.com/getssl即可打开证书安装的界面,安装完证书后,就可以截取手机上的,出现证书安装页面,点击安装手机设置有密码的输入密码进行安装
(注意事项)证书安装成功后,需要在iphone 的 设置 ->关于本机 ->受信任证书存储区 ->> 永远信任此证书(ios 10 之后的版本需要,不然永远拿不到https 的数据)
(2)设置https 代理,抓取某个域名的https 数据包,这里以 api.weibo.cn 为例。
Host填写:https://api.weibo.cn
Port填写:443
配置如下图:
成功抓取如下图;