无论是风里,还是在雨里,我都在这里守候着你~
如果你先抓取一个app的数据,你肯定想到的是从利用Fiddler,设置一个代理,让手机浏览的请求都从Diddler走!然会一顿操作猛如虎,设置完却发现打开部分app没有网的情况,可能就懵逼了。
下面介绍一种方法,让你的Fiddler可以抓到包。先走一下Fiddler爬取手机请求的重要点:
1、需要手机和电脑在同一个局域网下
2、手机安装证书就好
具体的操作网上一大堆,这里不再阐述。当我设置好代理,打开某App的时候,却什么也看不到(没网)。
但是打开其他应用也可以请求。
解决没有网且抓不到包的情况(利用V**进行流量转发)
这里需要root,可以直接下载夜神模拟器。
下载drony软件
可以在网上直接下载:http://www.mdpda.com/app/apk7521889.html
配置drony软件
打开该软件是这样的:
左滑至SETTINGS页面,点击WIFI
如果你是用的模拟器,只会看到一个wifi,如果是手机会有多个。
点击当前连的wifi:
首先把Hostname修改成你PC端的ip
把Port的端口修改成你自己再Fiddler中设置的端口(默认8888)
再把最上方的Proxy type 修改成Manual
下方的Proxy type 修改成Plan http proxy
往下滑动:把Filter default value 修改成Direct all
然后点击Rules进入点击右上角的+号:
只需要设置两个值:Network id 应该是你的wifi名,不用修改
修改Action为:Local proxy chain
修改Application为你想要爬取的那个app,点击右上角的保存(这里随便用一个app为例子),即可
保存之后就可以返回到最初打开这个软件的页面点击OFF即可,之后就可以去打开app,查看一下Fiddler抓取的包。
打开之后发现都是这样的一些信息:
为什么出现这种情况,应该是不信任证书的问题。接下来继续。
把用户的证书放在系统证书下(需要root)?
找到其中的原因很重要,目前很多App已经不再信任用户自己安装的证书了,我我们通过Fiddler安卓的证书实在用户下,
而非系统下:
我们通过Fiddler安装的证书是在用户下,这也就是为什么只能看到一些请求,看不到东西的原因。
我们需要做的就是将这个证书放在系统下,系统读取的只是一个/system/etc/security/cacerts/目录下的文件。
1第一步下载fiddler的证书并获取hash值。
在线计算hash值的网站:http://www.atool9.com/file_hash.php
直接把证书拖进去会基础出一个hash值,我的是
6ee8f572,然后把证书修改成6ee8f572.0放入到/system/etc/security/cacerts/文件夹下,
之后再访问就可以看到: