Charle抓包与wireshark使用

发表于:2018-6-25 11:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:graveliang    来源:博客园

      今天就来看一下Mac上如何进行抓包,不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charles,它是Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,同时还有一个问题就是他是收费的。
  一、下载
  先到它的官网http://www.charlesproxy.com/可下载到最新版本,
  这个是3.9.3版本的,下载下来,安装就不多说了,很easy....打开界面:
  Enter your image description here:
  二、破解
  不过这个收费的,那么接下来就开始破解吧,其实破解很简单就是替换一个文件就可以了,可以在网上搜:Charles3.9.3破解的jar文件
  下载下来之后我们就可以进行破解吧:
  打开应用程序,选择Charles,选择显示包内容:
  - list text here 然后点击Contents->Resources->Java:
    
      Enter your image description here:
  然后将我们下载下来的charles.jar替换这里的charles.jar就可以了。然后再次打开Charles,就不会太提示30天使用期限了,破解搞定
  三、抓包 下面来看一下如何进行抓包
  第一、HTTP抓包 1、打开Charles程序 2、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.7 3、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:  Enter your image description here:
   
  4、iOS设备打开你要抓包的app进行网络操作 5、Charles弹出确认框,点击Allow按钮即可
  第二、HTTPS抓包
  需要下载Charles证书http://www.charlesproxy.com/ssl.zip,解压后导入到iOS设备中
   
  Enter your image description here:  点击打开:  Enter your image description here:  点击安装: Enter your image description here:
  再次点击安装,证书就安装成功了
  然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings… 切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步 这一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443
   
  Enter your image description here: 
       这时候我们打开网易app:
   
       Enter your image description here:
  就可以看到数据了,至此抓包工作就搞定了。
  注意:当我们不抓包的时候,会将Charles关闭,这时候iOS是访问不到网络的,因为设置了代理(就是Charles),这时候需要将iOS中的代理关闭,这个是抓包时经常犯的错。
  Wireshark
  rvictl -s afe72bbebab036ae562f1f3e392f22cfd350455f
  对应生成的接口是 rvi0
  mac系统版本:mac 10.10 Yosemite
  xcode版本:6.3.1
  在追踪bug或者分析借鉴其他公司的app通讯思路时,抓包这件事是非常有必要的。下面说说Wireshark怎么截获iphone的数据包。
  安装wireshark
  wireshark是依赖x11的,所以首先确认安装了x11,mac自带,可以打开升级一下。
  前往-实用工具-x11,打开后点击菜单栏上的x11,检查更新 即可。中间提取包内容过程比较长,耐心等待。
  下载Wireshark最新版,尽量去官网下载:
  https://www.wireshark.org/download.html (需要翻..)
  安装,安装过程很简单,一路下一步。
  我这里下载的Wireshark 1.12.4 Intel 64,安装后无法运行,网上说x11位置不对。控制台执行:
  sudo ln -s /opt/X11 /usr/X11
  问题依旧。
  没办法下载了一个XQuartz-2.7.7:
  http://xquartz.macosforge.org/landing/
  安装,运行Wireshark。点完wireshark图标等了10多分钟,终于算是打开了,之后再打开就不需要等了。
  抓iphone数据
  想抓iphone的数据,首先需要让iphone数据通过mac才行。看到网上很多设代理什么的方法,比较复杂,有的还要越狱。其实没必要。只要链上数据线,然后在mac的终端执行:
  rvictl -s iphone设备id
  这时,所有iphone网络流量都会经过iphone所链接的mac,并且iphone数据还是走自己的网络,比如iphone链接在3g网络,数据还是会通过3G收发,而不是通过mac的网络。断开连接:
  rvictl -x iphone设备id
  设备连接后,mac会出现一个对应的虚拟网络接口,名字是rvi0(如果有多个iphone则累加,rvi1,rvi2…)
  只要启动Wireshark,监听rvi接口就能抓到iPhone数据了,当然,也可以使用Wireshark以外的工具抓取或分析。
  关于获取iphone设备ID,可以使用xcode-windows-devices,选择相应设备,右面设备信息的identifier里就是了。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号