Fiddler不但能截获各种浏览器发出的HTTP/HTTPS请求,也可以截获各种移动设备(包括Andriod和IOS)发出的HTTP/HTTPS请求。最关键的是,Fiddler还可以断点调试,修改Request和Response,而且即便抓包的是IOS设备,这些操作也可以直接在Windows PC上进行,不需要非得在MAC上。
官网下载地址:https://www.telerik.com/fiddler
安装步骤略。
1、进入Tools-Options...,设置HTTPS,如下图所示
2、设置Connections,选中"Allow remote computers to connect",如下图所示,Fiddler的默认端口是8888
(1) 网络代理设置
安装Fiddler的机器,跟Iphone(ipad) 必须在同一个网络里, 否则IPhone(ipad)不能把HTTP发送到Fiddler的机器上来。
打开IPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(可以通过cmd命令窗口中输入ipconfig来查看,比如:192.168.1.104) 以及Fiddler的端口号8888
(2) Fiddler证书安装
这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步
1. 首先要知道Fiddler所在的机器的IP地址(在上一步中我们其实已经知道了):假如我安装了Fiddler的机器的IP地址是:192.168.1.104
2. 打开IPhone 的Safari,访问 http://192.168.1.104:8888 点击最下面的"FiddlerRoot certificate", 然后安装证书
3. iOS 10.3升级之后,安装的证书默认是不启用的,需要手动去开启。设置 –> 通用 –> 关于本机 –> 证书信任设置,将Fiddler的证书开关打开就行了。
现在大功告成,可以抓包了。IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取,不但能截获, 还可以下断点,修改Request, 修改Response。
(1) 用完了, 记得把IPhone(ipad)上的Fiddler代理关闭, 以免IPhone(ipad)上不了网。
(2) 只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->"描述文件")
2. 按照上面的方法,重新安装Fiddler证书
经过上面的设置,如果手机通过代理还是连不了网,可以进行如下设置
1. 关闭电脑防火墙
2. 打开注册表(cmd-regedit),在HKEY_CURRENT_USER\Software\Microsoft\Fiddler2下创建一个QWORD,值置为80(十进制)
3. 编写fiddlerScript rule,点击Rules->Customize Rules,用Ctrl+F查找OnBeforeRequest方法添加如下一行代码
if (oSession.host.toLowerCase() == "webserver:8888")
{
oSession.host = "webserver:80";
}
设置完之后重启Fiddler即可。