Android利用Fiddler进行网络数据抓包

Trinea 发布于 2013/10/21 21:29
阅读 33K+
收藏 28

最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包


主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博、微信、墨迹天气)的网络通信请求就可以利用这个方法。

相对于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两项,如下图:
fiddler https options
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

 

(2) 配置Fiddler允许远程连接
如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
fiddler remote connect

 

(3) 配置手机端
Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip为10.0.4.37,如下图
ipconfig
手机端浏览器访问http://10.0.4.37:8888,即Fiddler所在机器ip加上端口,代理上网。显示如下图页面:
fiddler certifacate
点击FiddlerRoot certificate下载证书并重命名

如何未设置锁屏密码,可能会提示”您需要先设置锁屏密码才能使用凭据存储”,点击确定进行设置。
之后打开手机连接到同一局域网的wifi,并修改该wifi网络详情->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图:
android network proxy

这时,手机上的网络访问在Fiddler就可以查看了,如下图微博和微信的网络请求:
微信抓数据包
可以双击上图某一行网络请求,右侧会显示具体请求内容(Request Header)和返回内容(Response Header and Content),如下图:
微博网络拦截
可以发现Fiddler可以以各种格式查看网络请求返回的数据,包括Header, TextView(文字), ImageView(图片), HexView(十六进制),WebView(网页形式), Auth(Proxy-Authenticate Header), Caching(Header cache), Cookies, Raw(原数据格式), JSON(json格式), XML(xml格式)很是方便。

 

停止网络监控的话去掉wifi的代理设置即可,否则Fiddler退出后手机就上不网了哦。

如果需要恢复手机无密码状态,Android端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。

 

你可能还感兴趣:

Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

Android ImageCache图片缓存

Android性能优化之性能问题及性能调优方式

加载中
0
wangxigui
wangxigui
我用的都是tcpdump来进行android网络抓包,这个工具不知道有没有啥优点,有空看看
0
Trinea
Trinea

引用来自“wangxigui”的答案

我用的都是tcpdump来进行android网络抓包,这个工具不知道有没有啥优点,有空看看
相对于tcpdump配合wireshark抓包的优势在于: (1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂,Fiddler的UI更简单明了 (5) 可以查看https请求
0
adsfs
adsfs
有啥工具可以改包里面的数据?
0
Trinea
Trinea

引用来自“adsfs”的答案

有啥工具可以改包里面的数据?
没太明白你的意思,请求你是可以修改重新发送的,右击某个请求选择edit然后重发就可以了
0
adsfs
adsfs

引用来自“Trinea”的答案

引用来自“adsfs”的答案

有啥工具可以改包里面的数据?
没太明白你的意思,请求你是可以修改重新发送的,右击某个请求选择edit然后重发就可以了
就是服务器返回“123”给某个应用,我需要拦截这个“123”,改成“456”再让那个应用收到
0
Trinea
Trinea

引用来自“adsfs”的答案

引用来自“Trinea”的答案

引用来自“adsfs”的答案

有啥工具可以改包里面的数据?
没太明白你的意思,请求你是可以修改重新发送的,右击某个请求选择edit然后重发就可以了
就是服务器返回“123”给某个应用,我需要拦截这个“123”,改成“456”再让那个应用收到
这个不行
0
LiangShao
LiangShao
有个超简单的方法,就是用 virtualbox 新建一个android虚拟机,  虚拟机可以是天天模拟器或者海马玩模拟器、android-x86之类的,然后 记得在网络设置那里设置模拟器为nat 模式,这时候宿主机就是模拟器的 代理机,这时候宿主机的fiddle 就能拦截到所有apk 发出的http请求。
幽烛
幽烛
回头试试
0
黄羽蒙
黄羽蒙
我的手机和pc在一个局域网下面,但是手机访问那个局域网的地址,不通
_晨阳_
_晨阳_
我的也不通。。。打不开。。。,电脑可以打开。。。
0
李嘉图
李嘉图

用着不错,谢谢楼主了

返回顶部
顶部