Charles抓取iOS/Android应用网络封包

最近在进行一些iOS网络、多线程的开发与学习,需要用到一些网络上的数据。自己搭建服务器,写接口,显然成本太高。

而Charles轻松解决了这个问题。

Charles通常用来抓取本地的网络封包,但是当需要时,也可以用它来抓取其它设备上的网络请求。

下面以iOS为例,讲解如何抓取网易新闻:

  1. 首先需要将Charles的代理功能打开。在Charles的菜单中选择Proxy -> Proxy Settings -> 勾选 Enable transparent HTTP proxying
    这里写图片描述

  2. 让手机的网络与电脑的网络在同一个局域网,并设置手机的代理为电脑的IP
    这里写图片描述

  3. 上一步设置成功后Charles会弹出如下提示:
    这里写图片描述
    选择Allow。

  4. 到了这一步,就算配置成功了,在iPhone上打开网易新闻,执行一些需要请求数据的操作(刷新、换页等)。Charles就会自动截取到一些网络请求:
    这里写图片描述
    在这里,抓取到的数据出现了乱码,有两种方法可以解决这个问题:

    1. 将当前请求的url拷贝到浏览器中显示,可以选择所需要的任意编码。

    2. 修改Charles配置:在应用程序中找到Charles -> 显示包内容 -> 修改Info.plist文件 Java -> VMOptions 为-Xmx256m -Dfile.encoding=UTF-8
      这里写图片描述
      重新打开Charles并进行新的网络活动就会发现,文字可以正常显示了:
      这里写图片描述

至此,整个过程已经完成,可以拿抓取到的一些数据包进行学习啦!

Tips:

有时候发现网络请求太多,这时可以对网络请求进行过滤,在Charles的菜单中选择Proxy -> Recoding Settings 在弹出的面板中选择Include 添加一些规则:
这里写图片描述
这里的意思是不过滤匹配c.m.163.com这个地址的网络封包

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人第一个Android程序,支持包(pcap)和对包文件进行分析(只支持http分析,自动解压gzip), 本程序无广告,无恶意代码, 如果不能用请告知手机信息和具体问题. Email: humorcolor@163.com 更新说明: V1.0.4 1.兼容Android4.2 V1.0.3 1.处理展示时间bug V1.0.2 1.增加部分机型适配 2.增加封包解析时间展示 3.处理长连接解析问题 说明: 1.请确认你的手机已ROOT 或者 能够在电脑上连接ADB 2.请确认你的手机有储存卡(/sdcard) 3.如果你的手机已经有ROOT权限,可以直接使用此应用进行包 4.如果没有获取ROOT权限,请使用 ADB命令 将应用生成的[/sdcard/tcpdump]复制到[/ststem/xbin/]目录下,并修改权限为6755后再次运行此应用包。 5.包文件保存在/sdcard/目录下,文件格式为.pcap 6.所抓取的数据包可以直接打开分析或者在电脑上使用Wireshark打开分析 7.注意在包过程中不要切换网络,否则会导致切换后的网络访问无法被抓取 ADB命令示例: adb root adb remount adb pull /sdcard/tcpdump c:\\ adb push c:\\tcpdump /system/xbin/ adb shell chmod 6755 /system/xbin/tcpdump 相关命令备注: 包命令:/system/xbin/tcpdump -p -s 0 -w /sdcard/xxxxxx.pcap 查看网卡:/system/xbin/tcpdump -D 或者 netcfg (查看状态为UP的网卡) 复制文件:cp 不成功可以使用 dd if=/sdcard/tcpdump of=/system/xbin/tcpdump 没有写权限:mount -o remount,rw / 和 mount -o remount,rw /system 参考代码: 手机包工具V2.0 pyhttpcap-master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值