Android利用Fiddler进行网络数据抓包
主要介绍Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博、微信、墨迹天气)的网络通信请求就可以利用这个方法。Mac 下请使用 Charles 代替 Fiddler,Charles 免费激活码为Registered name: a!nthony ortolani License key: a!4036b2761c9583fda (需要将 name 和 key 中的 a! 都改为 a)
相对于tcpdump配合wireshark抓包的优势在于:(1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代{过}{滤}理即可) (4)数据包的查看更清晰易懂,Fiddler的UI更简单明了 (5) 可以查看https请求。如果你坚持使用tcpdump也可见:利用tcpdump和wireshark抓取网络数据包。
PS:需要1台PC做辅助,且PC需要与手机在同一局域网内或有独立公网ip
1、PC端安装Fiddler
下载地址:Fiddler.exe,下面是Fiddler的简单介绍(不感兴趣的可以直接跳过):
Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。
Fiddler的运行机制其实就是本机上监听8888端口的HTTP代{过}{滤}理。 对于PC端Fiddler启动的时候默认IE的代{过}{滤}理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以如果需要监听PC端Chrome网络请求,将其代{过}{滤}理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代{过}{滤}理。
2、 配置PC端Fiddler和手机
(1) 配置Fiddler允许监听https
打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:
http://farm8.staticflickr.com/7320/10207690173_44be3302b8_o.jpg
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。
(2) 配置Fiddler允许远程连接
如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
http://farm4.staticflickr.com/3680/10207583325_1a9022e942_o.jpg
(3) 配置手机端
Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip为10.0.4.37,如下图
http://farm8.staticflickr.com/7427/10207690383_96b5c8c381_o.jpg
手机端浏览器访问http://10.0.4.37:8888,即Fiddler所在机器ip加上端口,代{过}{滤}理上网。显示如下图页面:
http://farm4.staticflickr.com/3761/10207583185_0eefddb693_o.jpg
点击FiddlerRoot certificate下载证书并重命名
http://farm4.staticflickr.com/3772/10207690573_0afc4d757c_o.jpg
如何未设置锁屏密码,可能会提示”您需要先设置锁屏密码才能使用凭据存储”,点击确定进行设置。
之后打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代{过}{滤}理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图:http://farm8.staticflickr.com/7321/10207583165_07eaf92f74_o.jpg这时,手机上的网络访问在Fiddler就可以查看了,如下图微博和微信的网络请求:
http://farm8.staticflickr.com/7458/10207590796_05f1cb95ea_o.jpg
可以双击上图某一行网络请求,右侧会显示具体请求内容(Request Header)和返回内容(Response Header and Content),如下图:
http://farm8.staticflickr.com/7391/10207690343_cd497049ee_o.jpg
可以发现Fiddler可以以各种格式查看网络请求返回的数据,包括Header, TextView(文字), ImageView(图片), HexView(十六进制),WebView(网页形式), Auth(Proxy-Authenticate Header), Caching(Header cache), Cookies, Raw(原数据格式), JSON(json格式), XML(xml格式)很是方便。
停止网络监控的话去掉wifi的代{过}{滤}理设置即可,否则Fiddler退出后手机就上不网了哦。
如果需要恢复手机无密码状态,Android端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。
如果只需要监控一个软件,可结合系统流量监控,关闭其他应用网络访问的权限。 我来帮忙补充几个部分,HTTPS抓包需要安装证书,前面有同学已经说了一种办法,我来说下第二种办法:
1. 用手机浏览器访问你电脑的IP,http://xxx.xxx.xxx.xx:8888,在浏览器弹出的界面下载证书
2. miui系统不能直接安装证书
3. 设置 -- > 更多设置 ---> 系统安全--->从sd卡安装--->选择你要安装的证书文件(一般在download目录下)
4.win10 系统默认开启防火墙状态是不能抓包的,如果你设置都是正确的,关闭防火墙就可以正常抓包了,测试的办法就是用手机ping你电脑的IP地址,如果不能ping通的话,就是电脑开启了防火墙,关闭就可以正常使用。 楼主,请问他抓取的是本地软件数据包还是局域网数据包?如果是局域网那就给分 吉子 发表于 2015-4-14 15:17
楼主,请问他抓取的是本地软件数据包还是局域网数据包?如果是局域网那就给分
文章说的应该是抓链接到本机的安卓设备所有流量包。
刚试了下挺好用,就是fidder那设置完本地转发之后要重启下fidder,不然不能生效,刚搞了半天才知道原因。 不行啊,楼主啊 Hmily 发表于 2015-4-14 15:58
文章说的应该是抓链接到本机的安卓设备所有流量包。
哇,居然见到H大回复i的帖子 嗯啊,学习一下 应该是本地的.谢谢分享. 在用很久了。 非常好的说明,必须顶一个!! 恩学习一下!!