Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


目录

  • 简介
  • 资源下载
  • 正文
    • Fiddler4 装置
    • Fiddler4 options装备
    • Fiddler4 装备证书
    • 重启Fiddler 和 Chrome浏览器
    • Fiddler4客户端 重置证书
    • Fiddler4 手机端装备
      • PC端网络IP获取
      • 手机端装备证书
    • Fiddler tunnel to 问题
      • FiddlerScript的装备(1)
      • Tunnel to 终极处理方案(2)
        • VirtualXposed 与 Justtrustme合作抓包
    • Fiddler 抓取不同链接的色彩显现优化
  • 总结

简介

这是一篇关于Fiddler抓包比较全面的文章,包括怎么处理抓包Tunnel to 脚本等

Fiddler(中文名称:小提琴)是一个HTTP的调试署理,以署理服务器的办法,监听体系的Http网络数据流动,Fiddler能够也能够让你查看一切的HTTP通讯,设置断点,以及Fiddle一切的“进出”的数据(我一般用来抓包),Fiddler还包括一个简略却功能强大的依据JScript .NET事情脚本子体系,它能够支撑很多的HTTP调试使命。

Fiddler是以署理WEB服务器的办法工作的,浏览器与服务器之间经过建立TCP衔接以HTTP协议进行通信,浏览器默认经过自己发送HTTP恳求到服务器,它运用署理地址:127.0.0.1, 端口:8888. 当Fiddler敞开会主动设置署理, 退出的时候它会主动刊出署理,这样就不会影响别的程序。不过假如Fiddler非正常退出,这时候因为Fiddler没有主动刊出,会造成网页无法访问。处理的办法是重新启动下Fiddler。

资源下载

若官网下载失利,可运用快捷下载地址

  1. Fiddler4

    Fiddler4官网

  2. VirtualXposed

    virtualxposed官网

    支撑32位: virtualxposed32位优化版(虚拟结构)v1.0

    支撑64位: virtualxposed64位(虚拟结构)v1.0
    virtualxposed64位(虚拟结构)v1.0:快捷地址

  3. JustTrustMe4
    justtrustme4
    justtrustme4 快捷地址
    Github JustTrustMe4

正文


Fiddler4 装置

(1)Fiddler官网地址:www.telerik.com/fiddler
(2)翻开官网,挑选经典版下载。

关于Fiddler EveryWhere等项没有详细运用过,依据实际状况下载选用

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(3)填上邮箱,勾上协议,点击【Download For Windows】

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(4)装置

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

依据自己需要,能够修改途径,修改后,点击【Install】,即可装置成功。

Fiddler4 options装备

(1)翻开fiddler,点击 Tools > Options ==> 装备HTTPS

勾选如图内容

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(2) Tools > Options ==> 装备Connections

点击 Connections > 在 Fiddler listens on port 中装备端口号(一般装备为8888),勾选【Allow remote computers to connect】、【Act as system proxy on startup】、【Monitor all connections】

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 装备完成,点击 OK

Fiddler4 装备证书

(1) Tools > Options > HTTPS > 点击【Actions】,挑选信赖根证书

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 依据提示,完成证书的装置信赖即可

(2)导出证书到桌面,在PC装置证书

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(3)翻开Chrome浏览器,在浏览器中导入证书

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 将之前从Fiddler中保存到桌面的证书,导入到上述方位。

重启Fiddler 和 Chrome浏览器

Fiddler4客户端 重置证书

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 至此,Chrome访问例如百度,在Fiddler4客户端就能够抓到HTTPS的包了。
  • 看例图,大致界面状况

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

Fiddler4 手机端装备

在PC 端 装备结束一切的工具,接下来也要装备手机端的IP、端口、装置证书、意图在一个局域网环境

PC端网络IP获取

(1)cmd 命令行获取ip地址

windows 按键 + R -> cmd 调出命令行
指令:ipconfig

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(2)或许在Fiddler4客户端也能够查看

鼠标点击最右侧的三角图标,悬停在“onLine”

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

手机端装备证书

有必要: 电脑端和手机处于同一网络下

  • 手机 > settings(设置) > WLAN >进入现已衔接网络的装备项

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 点击署理,挑选【手动】

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 翻开手机浏览器:输入 IP地址:端口号,点击FiddlerRoot certificate 然后装置证书

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • Android手机一般为经过贮存空间装置,会弹起一个弹窗,凭据用途,挑选为【VPN和运用】,点击确认。

Fiddler tunnel to 问题

在正常设置抓取HTTP的网络数据后,手机抓包发现恳求数据呈现Tunnel to 443的问题:
会呈现HTTPS类型链接 “fiddler tunnel to 443或许其他tunnel to…”

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • 思路

查看以上一路的装备是否正确
查看是否在同一个局域网,而且装备了证书
查看Fiddler是否装备了options 而且装备正确
若以上确认无误:

在如上设置成功过后!!仍然发现有些https恳求显现Tunnel to 443!!!!

不是悉数的https都显现Tunnel to 443,假如是悉数,说明你上面那些过程没有做好!!请参照上面的或许其他人的文章,把证书整理干净了重新来一遍!!!

假如部分恳求呈现Tunnel to 443的状况,那么持续!!

FiddlerScript的装备(1)

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(1)翻开 FiddlerScript
(2)选中 OnBeforeRequest, 这一步能够快速定位到 Script 代码中的OnBeforeRequest部分
(3)在 OnBeforeRequest 函数下面装备下述代码:

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

 //在这个 OnBeforeRequest 办法里,这段代码放在最终一个办法大括号后边。
 //处理HTTPS TUNNEL TO....
 var hosts = 'zkd.me develop.dog';
 FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
   if(hosts.indexOf(oSession.host) > -1){
            FiddlerApplication.Log.LogFormat("Capture session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
            if(oSession.HTTPMethodIs('CONNECT')){
                FiddlerApplication.Log.LogString('create fake tunnel response');
                oSession['x-replywithtunnel'] = 'FakeTunnel';
                return;
            }
            if (oSession.isHTTPS){
                FiddlerApplication.Log.LogString('switch https to http request');
                oSession.fullUrl = oSession.fullUrl.Replace("https://","http://");
                oSession.port = 80;
            }   
            FiddlerApplication.Log.LogFormat("Processed session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
        }
  • 假如试着比较一下和他人文章里贴的这段代码,就会发现我这儿少了一句。便是这一句,在遇到这个问题时被坑了一下。
<spanhljs-attribute">font-family:'KaiTi_GB2312';font-size:16px;">static function OnBeforeRequest(oSession: Session){  </span>

注意:这一句,根本不需要。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(4)点击Save Script,完成了设置以使其收效。

(5)重启几回Fiddler 客户端。

多重启几回fiddler,最终你会发现,一切的https恳求,都完美的被抓取了!!!

  • 这样装备的意图,简略一说:
    hosts变量界说的域名便是咱们想让Fiddler帮咱们一同欺骗浏览器的域名。

    这段代码的作用是判断假如这些指定的域名上有从浏览器传来CONNECT的恳求时,直接回来一个假的Response,这时Fiddler不会再企图去让恳求的实际呼应者回应这个CONNECT恳求,而是自己回来了一个恳求。

    浏览器在收到这个恳求以后不明就里,认为是服务器现已回来了安全信息,于是便愉快地持续发送恳求。Fiddler在收到之后的恳求,会将URL中的https替换为http,端口强制更换为80,再发给恳求的实际呼应者。

Fiddler 抓取不同链接的色彩显现优化

HTTP恳求和HTTPS恳求混在一块会看的目炫,经过脚本保存,能够让HTTP恳求和HTTPS恳求显现不一样的色彩。

如上,装备翻开 FiddlerScript
选中 OnBeforeRequest, 这一步能够快速定位到 Script 代码中的OnBeforeRequest部分
OnBeforeRequest 函数下面装备下述代码:

 //在这个 OnBeforeRequest 办法里,这段代码放哪个方位都可。
  if(oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){
     oSession["ui-color"] = "blue";
  }
  if(!oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){
    oSession["ui-color"] = "green";
  }

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

Tunnel to 终极处理方案(2)

为什么会回来Tunnel to 呢,网上给的解说是安卓体系 7.0 以上的,里面有个 ssl pinning,这个东西是对客户端的证书进行验证,假如遇到不信赖的证书,就会断开衔接,不持续恳求。所以这儿运用了 VirtualXposed(结构虚拟机) + justtrustme(绕过SSL证书)办法(软件链接已放在文章开篇头部)。

VirtualXposed 能够在非root手机上运转xposed插件。经过xposed插件做到各种操作,如:模拟定位、监听用户行为等。

VirtualXposed是依据VirtualApp和Epic在非ROOT环境下运转Xposed模块的完成(支撑5.0~10.0)

  • 由于google play不允许32位运用上架,0.20之后不再支撑32位运用
  • 但现在还有32位资源,资源链接放在文章开头了

(x86) VirtualXposed_0.18.2.apk
(x64) VirtualXposed_0.20.3.apk

装备

(1)装置【VirtualXposed】后翻开软件,若呈现【图2】的弹窗,点击弹窗外部即可,点击【图3】符号方位能够翻开【设置】页面。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


(2)装置运用:先将插件、测验运用装置到手机上,进入【VirtualXposed】,点击【增加运用】,挑选插件、测验运用,点击【装置】。弹窗中挑选【VIRTUALXPOSED】,太极 的话尽管稳定,但不符合当时咱们要运用的意图。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


(3)激活设备:【图3】页面向上划,即可进入运用列表,点击【Xposed Installer】,进入激活页面。【图8】为激活结果。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(4)装置插件:在【设置】页面点击【模块办理】,勾选咱们装置的插件,回来后在【设置】页面点击【重启】,如【图11】所示,此时插件现已装置结束。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

(5)日志获取:

点击【Xposed Installer】,点击左上角按钮,进入侧边栏。点击【日志】,即可看到日志数据。点击页面右上角按钮,能够挑选【当即整理日志】清除之前的日志。

然后翻开测验软件,再次进入日志页面,呈现【图14】内容。获取到了测验包getImei的行为,点击图中按钮能够进行保存。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美


Fiddler与手机合作抓取

假如上述手机上抓取办法,有时候不方便的话,或许不想用上述办法,能够运用另一种办法:

  • 重启之后,再翻开 VirtualXposed,点击咱们刚刚增加进来的APP(你要抓取的APP),操作APP就能够在电脑的fiddler抓到包了。

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

  • VirtualXposed翻开要抓取的App

Android调试工具  >> 抓包工具Fiddler4 全面总结,及拟态美

总结


1.Fiddler装置与装备
2.Chrome装置证书
3.手机装备IP,PORT,装置证书
4.Tunnel to 第一种处理办法,装备Script脚本
5.Tunnel to 第二种处理办法,VirtualXposed 与 Justtrustme合作抓包
6.Fiddler显现上的优化等