Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。 同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。
最关键的是,对IOS应用抓包时直接在Windows PC上进行,不需要非得在MAC上。下面介绍使用步骤
一、Mac安装Fiddler
一、Mono安装
安装程序可以从http://www.mono-project.com/download/#download-mac
二、从Mozilla LXR上下载所有受信任的root证书,存于Mono的证书库里
/Library/Frameworks/Mono.framework/Versions/Current/bin/mozroots –import –sync
三、配置环境变量
如果报错 -bash: mono: command not found ,则输入以下命令解决
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
四、使用Mono打开Fiddler.exe
打开terminal :
cd /Users/zxmoon/Downloads/fiddler-mac
mono Fiddler.exe 注意是否32位,然后加参数–arch=32
(另一个其它的文档
Mono安装
首先,Mac下需要使用.Net编译后的程序,需要用到跨平台的方案Mono(现阶段微软已推出跨平台的方案.Net Core,不过暂时只支持控制台程序)。安装程序可以从http://www.mono-project.com/download/#download-mac地址下载。
安装完后,在Terminal里执行以下命令:
/Library/Frameworks/Mono.framework/Versions//bin/mozroots –import –sync
此步是为了从Mozilla LXR上下载所有受信任的root证书,存于Mono的证书库里。root证书能用于请求https地址。
接下来如果想要运行Fiddler,还需要把Mono加入到环境变量中。编辑.bash_profile文件:
sudo vi ~/.bash_profile
加入文本:
export MONO_HOME=/Library/Frameworks/Mono.framework/Versions/5.0.1
export PATH=$PATH:$MONO_HOME/bin
保存后重新打开Terminal,Mono环境已装好。
Fiddler的安装
从Fiddler官网https://www.telerik.com/download/fiddler下载fiddler-mac.zip的压缩包。解压到非中文字符的路径下。
Fiddler运行
打开Terminal,进入到刚才解压的Fiddler路径,执行命令运行:
sudo mono Fiddler.exe
)
(或以下方法做一个类外参考:
从Fiddler官网https://www.telerik.com/download/fiddler下载fiddler-mac.zip的压缩包。
unzip fiddler-mac.zip -d /usr/local/lib/fiddler-mac
sudo sh -c ‘echo “nohup sudo mono –arch=32 /usr/local/lib/fiddler-mac/Fiddler.exe > /dev/null 2>&1 &” > /usr/local/bin/fiddler’
sudo chmod +x /usr/local/bin/fiddler
)
二、Fiddler配置 (配置完后记得要重启Fiddler)
打开Fiddler, Tools-> Fiddler Options 。
选中”Decrpt HTTPS traffic”, Fiddler就可以截获HTTPS请求
选中”Allow remote computers to connect”. 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
点击Actions,点击第二项:Export Root Certificate to Desktop,这时候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,
导证书到电脑上,并重启fiddler
三、手机配置
(1) 网络代理设置
安装Fiddler的机器,跟iPhone 必须在同一个网络里, 否则iPhone不能把HTTP发送到Fiddler的机器上来。一般情况,我们手头上是台式机和手机,台式机只有网线,没有无线wifi,所以和手机不在同一个网络,这时,我们就需要设置代理了
打开iPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888
(2) Fiddler证书安装
这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步
首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104
打开IPhone 的Safari, 访问 http://192.168.1.104:8888, 点”FiddlerRoot certificate” 然后安装证书
现在大功告成,可以抓包了。iPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。
实例: 打开Safari,
输入http://www.cnblogs.com/tankxiao. 看看Fiddler能否捕获。
输入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕获。
是不是HTTP和HTTPS都截获到了?, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.
四、注意事项
(1) 用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。
(2) 只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->”描述文件”)
安装上面的方法,重新安装Fiddler证书