工作中要用到一款android下的APP软件,其中有一个功能是查看课件的pdf资料,每个资料后面还有一个下载的按钮,但是都是不可用,注释写到不提供下载,估计是考虑到版权问题吧。但真的非常需要其中的资料,怎么办呢?
首先的想法就是像办法获取该app访问了哪个网址,然后用电脑访问后下载即可。但是怎么获取该app访问的网站呢?抓包,安卓下有一些抓包工具,不过都需要root,我的手机没有root,也不想root,所以就不用这个办法了。
那该如何抓包呢?安装支持抓包的路由器?NONONO,其实很简单,在笔记本电脑上安装“360免费wifi”软件,然后生成一个wifi热点,让手机通过这个热点上网,那么手机联网的所有数据肯定要通过电脑了,再抓包就是小菜一碟了。我K,太佩服自己了。
接下来在电脑上安装抓包工具,我用的是Wireshark Version 1.11.3(支持win8系统)。开始抓360虚出来的网卡上的数据包,OK,网址抓出来了,赶快粘贴到浏览器中,结果提示“This request requires HTTP authentication ().”,哦,手机app访问时是需要先登录的。简单,我抓登录网址,抓到后是“http://www.***.com/***/login”,粘贴到浏览器,期待登录对话框,结果还是提示“This request requires HTTP authentication ().”。为什么呢?想不出来,不想了。你不就是说我没登录吗?网站如何判断是否登录过了呢?一般用的是cookie。那我就伪造cookie。下载chrome下的EditThisCookie插件(你问我为什么google网站打不开,当然打不开了,被河蟹了,怎么下?翻墙吧,怎么翻?问度娘,我是不会告诉你的),装好EditThisCookie插件后,首先访问网址,提示错误,然后点击EditThisCookie按钮,将cookie中的JSESSIONID改为抓包中的JSESSIONID,然后刷新页面,OK,成功了,数据出来了,不过再一看,傻眼了,什么pdf呀,是几十张图片(内容都对),怪不得不让下呢。不过东西已经有了,自己在打包成PDF就行了。