赞
踩
最近因为要做一个项目,所以需要对手机给家电发送的请求进行抓取,于是上网找了许多教程,但都不怎么理想,最终经过两个晚上的艰辛奋斗,终于让我找到了方法抓取到了手机发送的请求,写一篇博客记录一下这个过程。
下载Fiddler这一步我就不说了,网上都有教程的
首先我们的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个WiFi,在同一个路由器下)。
在cmd窗口使用ipconfig指令查询自己电脑的IP地址,如下图:
打开fiddler后,选择"Tools"项,再点击"Options",进入到设置界面。
在"Options"界面,勾选Https Decrypt用于将网页的密文包解为明文包,
接着去Connections,勾选Allow xxx,允许手机手动代理之后可以连接,同时记住我们的端口号是8888
为了方便查看和分析,需要对Fiddler抓取的数据包进行过滤,让它只显示手机上抓到的数据包,进入到"Tools"—>Options——>https项,选择"…from remote clients only"
进入到手机的wlan配置界面,连接电脑正在连接的WiFi,然后长按该WiFi,点击修改网络,进入到该WiFi的设置界面,如下图:
在wlan设置界面找到"代理设置"项,点击进入到代理设置界面,设置为手动代理,然后将电脑的ip地址填入服务器栏(主机名),端口号填入Fiddler监听端口8888,然后保存,如下图:
安装证书:回到到Fiddler,点击右边的Actions按钮,选择Trust Root Certificate选项,然后全部选择是就行了。
重启Fiddler,在手机浏览器输入电脑IP+端口,就是代理的IP+端口,就会出现下图的页面,点击FiddlerRoot certificate下载并安装
输入名称和选择用途,点击【确定】完成安装(前提是要设置手机开锁密码,没有设置的话会提醒你)
到了这一步一般来说,我们可以在电脑上用Fiddler抓包了,比如访问一些网站和APP,Fiddler中就会显示捕获到的手机上HTTP/HTTPS通讯记录,抓包成功,但是…在抓包的过程中应用会提示当前网络不可用…这时候我心态炸了,网络不可用我抓锤子!!!刚刚配的证书据说是让手机以为它在安全的网络下访问,但是很显然它并没有起作用
于是我继续寻找解决方案,终于找到了另一个软件VitualXposed
先来介绍一下这个软件的作用,VitualXposed 可以在不需要设备 root 的情况下,修改 App 的行为。此应用的工作原理类似于应用分身功能,会将应用安装到一个虚拟独立的环境当中,其内部会自带一个已经激活了的 Xposed 工具。
这一步我也不说了,网上也有教程,不过要注意的是,下载最新版本的话不支持32位的安卓应用…(别问我怎么知道的),最新的支持32位应用的就只有0.18.2版了。
官网的下载地址:VitualXposed下载
JustTrustMe 是 GitHub 上面的一个开源项目,是 xposed 中的一个模块,用于禁止 SSL 证书验证。
将 VitualXposed 安装到真机中,点击应用按钮-> 添加应用,将要调试的 App和我们下载好的JustTrustMe.apk 进行安装
打开 Xposed,选择左上角导航栏=> 模块,勾选 JustTrustMe
配置好上述的东西之后,我们重启VitualXposed和Fiddler,在VitualXposed里面打开需要测试的app,通过Fiddler抓包,可以看到 App 请求正常,没有再出现网络不可用的情况了,https 请求能抓到
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。