如何用Fiddler对Android应用进行抓包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Fiddler对Android应用进行抓包相关的知识,希望对你有一定的参考价值。

iddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此,它还可以支持请求重放等一些高级功能。显然它是可以支持对手机应用进行http抓包的。本文就来介绍下如何用fiddler对手机应用来抓包。

  工具/原料
  Fiddler
  android设备
  方法/步骤
  启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。

  在Fiddler Options”对话框切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选框,然后点击“OK”按钮。

  在本机命令行输入:ipconfig,找到本机的ip地址。

  打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。

  在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“保存”按钮。

  然后启动android设备中的浏览器,访问百度的首页,在fiddler中可以看到完成的请求和响应数据。
参考技术A   Fiddler的工作原理

  Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理,
退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.

  同类的其它工具

  同类的工具有: httpwatch, firebug, wireshark

  Fiddler 如何捕获Firefox的会话

  能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。
Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。

  Firefox 上通过如下步骤设置代理

  点击: Tools -> Options, 在Options 对话框上点击Advanced tab - > network tab
-> setting.

  Firefox 中安装Fiddler插件

  修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。 麻烦

  推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request
和response

  当你安装fiddler后, 就已经装好了Fiddler hook插件, 你需要到firefox中去启用这个插件

  打开firefox tools->Add ons -> Extensions 启动 FiddlerHook

  Fiddler如何捕获HTTPS会话

  默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS
tab

  点击"Yes" 后,就设置好了

  Fiddler的基本界面

  看看Fiddler的基本界面

  Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab
只查看消息中的header.

  Fiddler的HTTP统计视图

  通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

  选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

  使用虚拟机

  Mac中安装虚拟机软件(比如VMware Fusion). 然后在虚拟机中安装一个 Windows7系统(别的Window系统都可以),
然后在Windosw7中安装Fiddler

  虚拟机的网络使用“Bridged” 模式

  采用"Bridged" 模式, 可以让虚拟机上运行的Windows7系统,就像局域网里的一台独立的主机,拥有独立的IP地址

  配置虚拟机上的Fiddler, 允许“远程连接”

  在虚拟机中, 打开Fiddler Tools-> Fiddler Options 。 (配置完后记得要重启Fiddler).

  选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求

  选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来

  获取虚拟机Windows7的IP地址

  这个太简单了, 直接在CMD中运行ipconfig. 就可以得到Windows7的IP地址,

  或者你可以在Fiddler中得到IP地址。 把鼠标放在 Fiddler 工具栏上的 “Online” 上就可以了

  配置Mac,把代理服务器指向Fiddler

  在Mac 系统中, 打开System Preferences ->Network->Advanced...->Proxies


  选择“Web Proxy (HTTP)” 输入IP地址10.29.56.93和端口8888

  选择“Secure Web Proxy (HTTPS)” 输入IP地址10.29.56.93和端口8888

  大功告成, 开始抓包

  现在Mac上面任何程序(比如Safari, Firefox, Itunes, App
Store)发出的HTTP/HTTPS都可以被Fiddler获取。

  实例: 在Mac上,打开Safari,

  1. 输入http://www.cnblogs.com/tankxiao. 看看Fiddler能否捕获。

  2. 输入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕获。

  是不是HTTP和HTTPS都截获到了????, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you
want.

  用完后,记得在Mac中禁止代理

  每次用完, 一定要记得把Mac上的代理禁止掉, 否则容易造成Mac无法上网。

以上是关于如何用Fiddler对Android应用进行抓包的主要内容,如果未能解决你的问题,请参考以下文章

如何用Fiddler对Android应用进行抓包

如何用Fiddler对Android应用进行抓包

如何用Fiddler对Android应用进行抓包

如何用Fiddler对Android应用进行抓包

如何用Fiddler对Android应用进行抓包

如何用fiddler对手机进行抓包