只能抓 http(s) 的包,不能抓自定义协议的包,如果要分析到更底层的包,像TLS handShake 这种就没办法了
公司主营业务:做网站、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出大丰免费做网站回馈大家。
功能相对强大一些,可以针对某个网卡抓到所有的的数据包,类似于 tcpdump, 也可以抓自定义协议的包,可以分析到 TLS handShake 包
iOS 5 之后, iPhone 带了一个 Remote Virtual Interface (RVI) 功能,我们可以通过 RVI 把数据从 iOS 设备上转发到我们 Mac 机器上的一个虚拟网卡
连接手机到电脑上, 获取到设备的 UUID,Xcode-Window- Devices And simulators
在命令行中查看当前已有网络接口
接下来使用 rvictl 创建虚拟网络接口
再次查看网络接口
可以看到虚拟接口已经创建成功。
虚拟网络接口已经创建完毕,接下来使用抓包工具抓到原始包分析
RVI 设置好以后,我们可以在 Mac 上直接利用 tcpdump 查看数据包。
输入完密码后可以,抓包已经可以开始
按下 Ctrl + G 可以结束抓包
tcpdump 很强大,但是可读性不太高,我们尝试用Wireshark 分析原始数据包。
AirPlay 是Apple 私密协议,但也被很多商业破解收费,但每个版本 Apple 都有可能再加密一次,这边有一份 non-official AirPlay 协议,大致描述了 AirPlay 的一个过程, non-official AirPlay protocol , 接下来看一下 iOS 12 上 AirPlay 协议
工具: airServer 可以将 手机通过 AirPlay 投到 mac 上
以下分析过程都采用 wireShark
启动 wireShark
选择抓 rvi0 网络接口数据,点击开始
airplay 非正式版的协议
发送端 :30.40.200.4
接收端:30.40.202.17
我们在 wireShark 上看下具体原始数据包:
30.40.200.4 -- 30.40.202.17
发送端向接收端查询AirPlay 和 RAOP 的信息,拿到数据包原文如下:
接收端回复数据包:
30.40.202.17 -- 30.40.200.4
里面包含了很的信息我们都可以解析。
本地开发项目的时候,我们可以通过谷歌浏览器的debug模式来看request以及response的数据,但是如果我们开发移动端真机项目呢?或者真机线上出现问题如何抓取数据查看接口入参和出参呢?这就需要用到“抓包”
抓包就是通过工具抓取应用的接口数据然后通过分析数据得出问题结论的一种常用的工作方法。下面简述一下在iOS上面安装Charles并且实现抓包的过程,抓取范围包括web/APP内嵌web/小程序原生/小程序内嵌web等
【1】获取PC的IP地址和端口
在Charles菜单栏 - Help - Local IP Address中可以查看PC的IP地址。
一般Charles端口是默认的8888,可以从Charles菜单栏 - Proxy - Proxy Settings查看
【2】配置iPhone代理
设置 - 无线局域网 - 局域网信息(i) - 配置代理 - 手动
在配置iPhone代理完毕后,就可以通过Structure或者Sequence窗口预览HTTP请求的数据了。但由于HTTPS请求被加密过,预览请求时只能预览到乱码数据。要预览到HTTPS请求的数据明文,需要PC和iPhone安装证书授权。
【1】PC安装证书
在Charles菜单栏 - Help - SSL Proxying - Install Charles Root Certificate中可以为PC安装证书
这样,就可以使用Charles中抓包iPhone发出的HTTPS请求并预览明文数据了。
【3】 启动抓包SSL权限
在Charles菜单栏 - Proxy - SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。或者直接写*端口写443图示如下:
可以抓取对应添加的域名的Https的接口的数据
iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。下面是我收集整理的ios开发用Charles进行抓包的方法,欢迎阅读。
ios开发用Charles进行抓包的方法
首先,我们可以去一些网站下载安装一下这个软件。安装完毕后, 我们能看到这个漂亮的青花瓷。
现在,我们需要将我们的电脑配置成手机的.代理服务器,这样才能让我们的 MAC 顺利的拦截到手机软件的网络接口。我们先看一下自己的电脑ip。
在系统偏好设置 -- 网络 -- 查看当前 IP。
然后我们来配置一下手机网络设置,前提是你要确保你的手机和你的电脑在同一个局域网中。打开手机无线网的配置。就是点击这个图标。
接着,我们就看到配置页面啦,找到到代理这个栏目,选择“手动”,在服务器一项,填写刚才查看的电脑的ip,这里就是10.930.93.115,端口添加8888,然后返回就行了。
接着,我们在电脑上打开 Charles。然后配置一下,主要是配置端口,按照图示点击。
然后,在弹出框中找到端口,输入8888,和你手机输入的端口号保持一致。
到这里,配置就完成了。现在你可以打开你的手机进行上网,这是会看到Charles 在刷刷的显示数据,并在右侧面板中以黄色字体显示出来。
app开发中会遇到接口抓包的需求,可以使用三方抓包工具charles、mitmproxy 进行抓包。
抓包前,请做一下设置。
mitmproxy
4.安装证书,手机浏览区访问 mitm.it
我先择apple 安装,安装完成后需要信任证书。通用-关于本机-证书信任设置 信任mimtproxy证书。
charles