图解Fiddler如何抓手机APP数据包【超详细】
2018-03-15 15:09
330 查看
http://www.111cn.net/sj/android/90542.htm
1、PC端安装Fiddler下载地址:Fiddler.exe,http://www.telerik.com/download/fiddler
2、 配置PC端Fiddler和手机(1) 配置Fiddler允许监听https打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。(2) 配置Fiddler允许远程连接如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
(3) 配置手机端Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip为10.0.4.37,如下图
打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图:
这时,手机上的网络访问在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端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。如果只需要监控一个软件,可结合系统流量监控,关闭其他应用网络访问的权限。
利用fiddler抓取Android app数据包做Android开发的朋友经常需要做网络数据的获取和提交表单数据等操作,然而对于调试程序而言,很难知道我们的数据到底是以怎样的形式发送的,是否发送成功,如果发送失败有是什么原因引起的。fiddler工具为我们提供了很方便的抓包操作,可以轻松抓取浏览器的发出的数据,不管是手机APP,还是web浏览器,都是可以的。fiddler的工作原理fiddler是基于代理来实现抓取网络数据包的工作的,当我们开启fiddler以后,fiddler会将我们的浏览器的代理默认进行更改为 127.0.0.1 端口是8888,这时fiddler的默认端口,也就是说我们发送的每一个请求和收到的每一个响应都会先经过fiddler,这样就实现了抓取数据包的工作。路径:选项?>高级设置?>更改代理服务器设置?>局域网设置?>高级
<img alt="技术分享" src="http://filesimg.111cn.net/2015/07/15/20150715100501845.png%20%E8%BF%87%E6%BB%A4%E6%89%80%E6%9C%89%E5%9B%BE%E7%89%87%E7%9A%84%E8%AF%B7%E6%B1%82%3C/p%3E%3Cp%3E8.%E6%8E%A7%E5%88%B6fiddler%E6%98%AF%E5%90%A6%E5%B7%A5%E4%BD%9C%3C/p%3E%3Cp%3E%E5%9C%A8fiddler%E7%9A%84%E5%B7%A6%E4%B8%8B%E6%96%B9%E6%9C%89%E4%B8%80%E4%B8%AA%E6%8C%89%E9%92%AE%EF%BC%8C%E6%98%AF%E7%94%A8%E6%9D%A5%E6%8E%A7%E5%88%B6fiddler%E6%98%AF%E5%90%A6%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9D%A5%E6%8A%93%E5%8F%96%E6%B5%8F%E8%A7%88%E5%99%A8%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E7%9A%84%E5%8C%85%E7%9A%84%E3%80%82%E5%BD%93%E6%88%91%E7%82%B9%E5%87%BB%E4%B8%80%E4%B8%8B%E8%AF%A5%E6%8C%89%E9%92%AE%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%AF%A5%E6%8C%89%E9%92%AE%E6%98%BE%E7%A4%BA%E5%88%99%E8%A1%A8%E7%A4%BAfiddler%E5%A4%84%E4%BA%8E%E5%B7%A5%E4%BD%9C%E7%8A%B6%E6%80%81%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%AF%A5%E6%8C%89%E9%92%AE%E9%9A%90%E8%97%8F%EF%BC%8C%E8%A1%A8%E7%A4%BAfiddler%E4%B8%8D%E5%9C%A8%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82%3C/p%3E%3Cp%3E%3Cbr/%3E%3C/p%3E%3Ccenter%3E%3Ca%20href=" http:="" img.blog.csdn.net="" 20150607220206613"="" target="_blank" style="border: 0px; max-width: 600px !important;">
9.回话面板说明:
session会话的分析这里我随便选择一个会话来进行简单的分析。
替换服务器端返回的数据利用”autoresponser”可以替换服务器端返回的文件,当调试的时候需要替换服务器端返回的数据的时候,比如一个已经上线的项目,不可能真正的替换器某一个文件,我们可以这样来操作
从图片当中,可以很清晰的看出,当我再次加载该会话的时候,会显示之前设置好的404代理。如果需要设置不同的文件代理,也是可以的。比如对于该会话,原本服务器端返回的内容如下图:
由于该session返回的是一个图片类型的,所以我选择ImageView这个选项卡,可以看到此时返回的图片的样子,那么如果需要用本地的文件代理该返回的内容,和之前的操作步骤都是一样的,只是在选择代理的时候选择本地文件即可,如下图:
这次,我选择了一个本地的文件作为代理,此时当我再次重新请求该会话的时候,会返回本地的文件:
可以看出这个时候该会话返回的内容已经是我本地的代理了。fiddler网络限速fiddler还为我们提供了一个很方便的网络限速的功能,通过网络限速的功能,可以来模拟用户的一些真实环境。fiddler提供了网络限速的插件,我们可以在他的官网下载:http://www.telerik.com/fiddler/add-ons
点击”download”,下载完成之后,点击安装,需要重新启动fiddler,在重新启动fiddler之后,可以看到fiddler的工具栏选项卡,多出了一个FiddlerScript选项。
比如我需要在请求之前延迟一段时间,可以这样做:
在onBeforeRequest方法中加入这样一段代码”oSession[“request-trickle-delay”] = “3000”;”,那么如果需要在服务端响应之间做延迟只需要将”oSession[“request-trickle-delay”] = “3000”;”中的request替换成response即可。利用fiddler抓取Android app数据包终于到了今天的主题了,如何利用fiddler抓取Android app数据包,其实也是很简单的,只需要稍微配置一下就可以了。由于fiddler默认是抓取http协议的数据包,我们需要其能够抓取https这样的加密数据包,抓取Android app数据包,需要做如下配置:1.配置fiddler点击工具栏选项”tools?>FiddlerOptions”配置https:
配置远程连接:
这些配置完成之后,一定要重新启动fiddler。可以看到fiddler的默认端口是8888,我们可以现在浏览器上输入”http://127.0.0.1:8888”
到这里为止我们的fiddler就配置完成了,接下来需要配置手机上的无线网络。2.手机无线网络配置注意:如果需要fiddler抓取Android app上的数据包,那么两者必须在同一个无线网络中。(同时,必要时请关闭电脑的防火墙)在手机的无线网络配置之前,必须要首先知道fiddler所在主机的ip地址:
可以看到我的fiddler所在主机,也就是我的电脑在无线网中的ip地址是192.168.1.109打开手机设置中的无线网络界面,进行如下四步操作:选中连接的网络,点击修改网络
点击高级选项
代理―>手动
输入代理服务器的ip,也就是我们fiddler所在主机的ip地址,和端口,fiddler默认的端口是8888,IP选项设置为”DHCP”
点击保存,此时手机端就配置成功了,打开fiddler,使用打开网易新闻客户端。
此时可以看到fiddler抓取的网易app发送和接收的相关数据包。
ok,左侧是我们的所有会话,我随机的选中一个会话,该会话是image类型的,查看该会话的内容,是我们网易新闻的头条上的图片。注意:1.关闭电脑的防火墙2.如果需要抓取手机app的数据包,需要手机和电脑在都连接同一个无线网络3.抓完包以后将fiddler关闭(提高访问网络的速度)同时将手机上的代理关闭 (如果不关闭代理,当fiddler关闭,或者是两者连接的不是同一无线网络,手机会不能正常的访问网络)
1、PC端安装Fiddler下载地址:Fiddler.exe,http://www.telerik.com/download/fiddler
2、 配置PC端Fiddler和手机(1) 配置Fiddler允许监听https打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。(2) 配置Fiddler允许远程连接如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
(3) 配置手机端Pc端命令行ipconfig查看Fiddler所在机器ip,本机ip为10.0.4.37,如下图
打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图:
这时,手机上的网络访问在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端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。如果只需要监控一个软件,可结合系统流量监控,关闭其他应用网络访问的权限。
利用fiddler抓取Android app数据包做Android开发的朋友经常需要做网络数据的获取和提交表单数据等操作,然而对于调试程序而言,很难知道我们的数据到底是以怎样的形式发送的,是否发送成功,如果发送失败有是什么原因引起的。fiddler工具为我们提供了很方便的抓包操作,可以轻松抓取浏览器的发出的数据,不管是手机APP,还是web浏览器,都是可以的。fiddler的工作原理fiddler是基于代理来实现抓取网络数据包的工作的,当我们开启fiddler以后,fiddler会将我们的浏览器的代理默认进行更改为 127.0.0.1 端口是8888,这时fiddler的默认端口,也就是说我们发送的每一个请求和收到的每一个响应都会先经过fiddler,这样就实现了抓取数据包的工作。路径:选项?>高级设置?>更改代理服务器设置?>局域网设置?>高级
<img alt="技术分享" src="http://filesimg.111cn.net/2015/07/15/20150715100501845.png%20%E8%BF%87%E6%BB%A4%E6%89%80%E6%9C%89%E5%9B%BE%E7%89%87%E7%9A%84%E8%AF%B7%E6%B1%82%3C/p%3E%3Cp%3E8.%E6%8E%A7%E5%88%B6fiddler%E6%98%AF%E5%90%A6%E5%B7%A5%E4%BD%9C%3C/p%3E%3Cp%3E%E5%9C%A8fiddler%E7%9A%84%E5%B7%A6%E4%B8%8B%E6%96%B9%E6%9C%89%E4%B8%80%E4%B8%AA%E6%8C%89%E9%92%AE%EF%BC%8C%E6%98%AF%E7%94%A8%E6%9D%A5%E6%8E%A7%E5%88%B6fiddler%E6%98%AF%E5%90%A6%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9D%A5%E6%8A%93%E5%8F%96%E6%B5%8F%E8%A7%88%E5%99%A8%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E7%9A%84%E5%8C%85%E7%9A%84%E3%80%82%E5%BD%93%E6%88%91%E7%82%B9%E5%87%BB%E4%B8%80%E4%B8%8B%E8%AF%A5%E6%8C%89%E9%92%AE%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%AF%A5%E6%8C%89%E9%92%AE%E6%98%BE%E7%A4%BA%E5%88%99%E8%A1%A8%E7%A4%BAfiddler%E5%A4%84%E4%BA%8E%E5%B7%A5%E4%BD%9C%E7%8A%B6%E6%80%81%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%AF%A5%E6%8C%89%E9%92%AE%E9%9A%90%E8%97%8F%EF%BC%8C%E8%A1%A8%E7%A4%BAfiddler%E4%B8%8D%E5%9C%A8%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82%3C/p%3E%3Cp%3E%3Cbr/%3E%3C/p%3E%3Ccenter%3E%3Ca%20href=" http:="" img.blog.csdn.net="" 20150607220206613"="" target="_blank" style="border: 0px; max-width: 600px !important;">
9.回话面板说明:
session会话的分析这里我随便选择一个会话来进行简单的分析。
替换服务器端返回的数据利用”autoresponser”可以替换服务器端返回的文件,当调试的时候需要替换服务器端返回的数据的时候,比如一个已经上线的项目,不可能真正的替换器某一个文件,我们可以这样来操作
从图片当中,可以很清晰的看出,当我再次加载该会话的时候,会显示之前设置好的404代理。如果需要设置不同的文件代理,也是可以的。比如对于该会话,原本服务器端返回的内容如下图:
由于该session返回的是一个图片类型的,所以我选择ImageView这个选项卡,可以看到此时返回的图片的样子,那么如果需要用本地的文件代理该返回的内容,和之前的操作步骤都是一样的,只是在选择代理的时候选择本地文件即可,如下图:
这次,我选择了一个本地的文件作为代理,此时当我再次重新请求该会话的时候,会返回本地的文件:
可以看出这个时候该会话返回的内容已经是我本地的代理了。fiddler网络限速fiddler还为我们提供了一个很方便的网络限速的功能,通过网络限速的功能,可以来模拟用户的一些真实环境。fiddler提供了网络限速的插件,我们可以在他的官网下载:http://www.telerik.com/fiddler/add-ons
点击”download”,下载完成之后,点击安装,需要重新启动fiddler,在重新启动fiddler之后,可以看到fiddler的工具栏选项卡,多出了一个FiddlerScript选项。
比如我需要在请求之前延迟一段时间,可以这样做:
在onBeforeRequest方法中加入这样一段代码”oSession[“request-trickle-delay”] = “3000”;”,那么如果需要在服务端响应之间做延迟只需要将”oSession[“request-trickle-delay”] = “3000”;”中的request替换成response即可。利用fiddler抓取Android app数据包终于到了今天的主题了,如何利用fiddler抓取Android app数据包,其实也是很简单的,只需要稍微配置一下就可以了。由于fiddler默认是抓取http协议的数据包,我们需要其能够抓取https这样的加密数据包,抓取Android app数据包,需要做如下配置:1.配置fiddler点击工具栏选项”tools?>FiddlerOptions”配置https:
配置远程连接:
这些配置完成之后,一定要重新启动fiddler。可以看到fiddler的默认端口是8888,我们可以现在浏览器上输入”http://127.0.0.1:8888”
到这里为止我们的fiddler就配置完成了,接下来需要配置手机上的无线网络。2.手机无线网络配置注意:如果需要fiddler抓取Android app上的数据包,那么两者必须在同一个无线网络中。(同时,必要时请关闭电脑的防火墙)在手机的无线网络配置之前,必须要首先知道fiddler所在主机的ip地址:
可以看到我的fiddler所在主机,也就是我的电脑在无线网中的ip地址是192.168.1.109打开手机设置中的无线网络界面,进行如下四步操作:选中连接的网络,点击修改网络
点击高级选项
代理―>手动
输入代理服务器的ip,也就是我们fiddler所在主机的ip地址,和端口,fiddler默认的端口是8888,IP选项设置为”DHCP”
点击保存,此时手机端就配置成功了,打开fiddler,使用打开网易新闻客户端。
此时可以看到fiddler抓取的网易app发送和接收的相关数据包。
ok,左侧是我们的所有会话,我随机的选中一个会话,该会话是image类型的,查看该会话的内容,是我们网易新闻的头条上的图片。注意:1.关闭电脑的防火墙2.如果需要抓取手机app的数据包,需要手机和电脑在都连接同一个无线网络3.抓完包以后将fiddler关闭(提高访问网络的速度)同时将手机上的代理关闭 (如果不关闭代理,当fiddler关闭,或者是两者连接的不是同一无线网络,手机会不能正常的访问网络)
相关文章推荐
- 图解Fiddler如何抓手机APP数据包
- 图解Fiddler如何抓手机APP数据包【超详细】
- Fiddler如何抓取手机APP数据包
- Fiddler如何抓取手机APP数据包
- 如何解决Fiddler抓手机app数据包时候遇到的证书问题
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- 如何嵌入SAP BusinessObjects报表到我的手机/平板移动app里面
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现散落点图表功能
- 请问FMX手机app多个窗体如何嵌入同一个窗体?
- 如何用js检测手机是否安装某个app
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现折线图表
- 如何在Android智能手机上捕获数据包?
- 如何用Jmeter录制手机app脚本
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现表单设计
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”
- 文件用户如何将一个有界面的正常app和一个或多个越狱插件.deb同时安装到手机上
- 如何在苹果手机上调试App
- IOS之如何把自己开发的App安装到越狱的手机
- 安卓app中嵌入一个H5页面,当手机系统设置字体变大时,如何使H5页面的字体不会随用户自己调整的系统字体变化而变化?