利用fiddler抓取Android app数据包

前言

做Android开发的朋友经常需要做网络数据的获取和提交表单数据等操作,然而对于调试程序而言,很难知道我们的数据到底是以怎样的形式发送的,是否发送成功,如果发送失败有是什么原因引起的。fiddler工具为我们提供了很方便的抓包操作,可以轻松抓取浏览器的发出的数据,不管是手机APP,还是web浏览器,都是可以的。

什么是fiddler

百度百科上是这样说的:Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据

fiddler下载:http://www.telerik.com/fiddler

fiddler的安装就不用多说了,傻瓜是安装。

fiddler的工作原理

fiddler是基于代理来实现抓取网络数据包的工作的,当我们开启fiddler以后,fiddler会将我们的浏览器的代理默认进行更改为127.0.0.1 端口是8888,这时fiddler的默认端口,也就是说我们发送的每一个请求和收到的每一个响应都会先经过fiddler,这样就实现了抓取数据包的工作。

路径:选项–>高级设置–>更改代理服务器设置–>局域网设置–>高级

fiddler常用功能

打开fiddler主界面如下:

我们一次从左到右来说明一下:

1.第一个类似于微信语音的小气泡的图标:给一个session回话添加comment,也就是添加备注功能。我们可以选中一个回话,然后为该回话添加备注,添加的备注会展示在该会话的comment选项上。

2.replay:

这个按钮是用来回放一个会话,比如,我需要重新请求一个回话,可以选中该回话,然后点击该按钮,或者点击键盘上的R键。

3.过滤请求:

如果我只想过滤从360浏览器发过来的请求,此时可以使用鼠标左键长按该按钮,拖动到360浏览器的任何一个可视区域:

可以看到此时显示只过滤360浏览器的包。

4.过滤session会话

从上图 可以看到,这里我过滤了“baidu”这个关键字。

5.textWizard

这个选项卡的作用是将给定的字符串进行编码或者解码,如下图:

6.断点调试

可以看到,最底下有一个按钮,当点击该按钮的时候会出现箭头方向的变化。当箭头向上的时候,我们的任何浏览器的请求都会阻塞,知道点击go按钮,才会执行。

7.控制台的使用

在fiddler的最下面一个黑色的矩形框,这个是fiddler的命令行。我们可以在该命令行下输入”help”跳转到官方网站,这里有详细的命令行教学。

常见的命令有:

1.cls清空所有会话

2.?.png 过滤所有图片的请求

8.控制fiddler是否工作

在fiddler的左下方有一个按钮,是用来控制fiddler是否作为代理服务器来抓取浏览器发送和接收的包的。当我点击一下该按钮,如果该按钮显示则表示fiddler处于工作状态,如果该按钮隐藏,表示fiddler不在作为代理服务器。

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类型的,查看该会话的内容,是我们网易新闻的头条上的图片。

总结

fiddler是一个很方便的抓取网络数据包的工具,他是基于代理的方式来实现的。

注意:

1.关闭电脑的防火墙

2.如果需要抓取手机app的数据包,需要手机和电脑在都连接同一个无线网络

3.抓完包以后将fiddler关闭(提高访问网络的速度)同时将手机上的代理关闭 (如果不关闭代理,当fiddler关闭,或者是两者连接的不是同一无线网络,手机会不能正常的访问网络)

ok,今天关于fiddler的基本学习,以及使用fiddler抓取app的网络数据包,就到这里了。希望大家能够喜欢。碎觉了。

时间: 2024-08-06 07:55:52

利用fiddler抓取Android app数据包的相关文章

使用Fiddler抓取手机APP数据包--360WIFI

使用Fiddler抓取手机APP流量--360WIFI 操作步骤:1.打开Fiddler,Tools-Fiddler Options-Connections,勾选Allow remote computers to connect,端口为8888:2.防火墙开放端口8888:2.在电脑上查看360wifi无线网卡IP地址,运行命令ipconfig /all,查看无线局域网适配器的IP信息192.168.1.100:3.手机wifi中设置代理为步骤2中的IP地址192.168.1.100,端口为步骤

Fiddler 抓取手机APP数据包

Fiddler是一个调试代理,下载地址http://www.telerik.com/download/fiddler 下载安装运行后,查出运行机器的IP,手机连接同一网域内的WIFI,手机WIFI连接设置里的高级里,代理设置填写上Fiddler运行机器的IP,这样从手机访问的链接都会走Fiddler,可以直接在Fiddle里查看数据包 1.PC端安装Fiddler 下载地址:Fiddler.exe,下面是Fiddler的简单介绍(不感兴趣的可以直接跳过): Fiddler是强大且好用的Web调试

fiddler 抓取手机app请求包

今天心血来潮,也不知道怎么了,想着抓抓我们公司手机app的包看看,研究研究我们公司的接口,哎,我们api文档,我自己抓包看看吧.工具选择fiddler,理由免费,用着也舒服,手机设备 iPhone6 ,app这里不介绍了. 第一步,设置代理, 打开fiddler,选择tool>Options>Connections ,设置端口号,勾选 Allow_remote computers to connect.然后ok.这样就完成了代理的设置.重启fiddler 查看电脑ip 第二步 手机链接代理服务

Fiddler2 抓取手机APP数据包

原文:http://blog.goyiyo.com/archives/2044 下载安装运行后,查出运行机器的IP,手机连接同一网域内的WIFI,手机WIFI连接设置里的高级里,代理设置填写上Fiddler运行机器的IP,这样从手机访问的链接都会走Fiddler,可以直接在Fiddle里查看数据包 1.PC端安装Fiddler下载地址:Fiddler.exe,下面是Fiddler的简单介绍(不感兴趣的可以直接跳过):Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http

Fiddler2 抓取手机APP数据包(转)

Fiddler是一个调试代理,下载地址http://www.telerik.com/download/fiddler 下载安装运行后,查出运行机器的IP,手机连接同一网域内的WIFI,手机WIFI连接设置里的高级里,代理设置填写上Fiddler运行机器的IP,这样从手机访问的链接都会走Fiddler,可以直接在Fiddle里查看数据包 1.PC端安装Fiddler下载地址:Fiddler.exe,下面是Fiddler的简单介绍(不感兴趣的可以直接跳过):Fiddler是强大且好用的Web调试工具

如何利用fiddler4 抓取手机的数据包

1.安装fiddler . 2.设置fiddler  .tool==> option里面  https 要打开,然后选择actions 第一个 安装本地证书: 3.设置手机访问的数据都要经过fiddler这个服务器 先看下远程代理服务器的端口, 还要设置允许远程访问: 4.手机设置wifi的ip, 代理设置为手动,代理ip为 电脑的ip地址,端口为8888 .  手机跟电脑的网络必须是一样的,就是要同一个路由器发出的wifi跟有线连接: 5.在手机的浏览器访问 电脑的 ip地址跟远程端口上图是8

[转]Fiddler抓取Android真机上的HTTPS包

此篇文章转载自:http://blog.csdn.net/roland_sun/article/details/30078353 工作中经常会需要对一些app进行抓包, 但是每次默认都是只抓http请求的包, 按照这篇文章设置之后就可以抓https的包了, 简单实用, 所以转载过来备用. 现在的Android应用程序几乎都会和网络打交道,所以在分析一个apk的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助. 对于HTTP包来说,已经有很多种分析的方法了,例如用tcpdu

利用Fiddler抓取websocket包

一.利用fiddler抓取websockt包 打开Fiddler,点开菜单栏的Rules,选择Customize Rules... 这时会打开CustomRules.js文件,在class Handlers中加入以下代码 static function OnWebSocketMessage(oMsg: WebSocketMessage) { // Log Message to the LOG tab FiddlerApplication.Log.LogString(oMsg.ToString()

Fiddler抓取Android真机上的HTTPS包

现在的Android应用程序几乎都会和网络打交道,所以在分析一个apk的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助. 对于HTTP包来说,已经有很多种分析的方法了,例如用tcpdump,或者将要分析的程序跑在模拟器中然后直接在物理机上用WireShark抓包.但是现在越来越多的应用已经使用HTTPS协议来和服务器端交换数据了,这无疑给抓包分析增加了难度. 幸好有一个工具Fiddler可以用来解决这个问题.Fiddler是一个非常强大的Web调试工具,它的原理不同于W