作者:loco Python爱好者社区专栏作者
知乎:https://www.zhihu.com/people/loco_z
文中均为Android环境下,实战中可以尝试降低APP版本或者是尝试抓一下iOS版APP的包(如果有)。
助人为乐的我又来了,这次又是在逛v2ex时看到的一个求助帖。
帖子内容:https://www.v2ex.com/t/496299
最近在抓包一个 APP:淘最热点
一款新闻 APP
抓不到新闻列表内容
只抓到了新闻图片
其他同类型的 APP 也抓过
没出现这种问题
用的 charles 抓的,证书设置没问题
不知道是不是这个 APP 的新闻列表走了其他协议
有大佬帮忙抓下看看嘛
这位同学遇到了一个抓不到APP新闻列表请求包的问题,我们先把这个APP装上抓个包看看。
未抓到新闻列表的请求
直接抓包看起来确实没有新闻列表的请求,除了图中的这些部分以外全都是图片以及CONNECT请求。
插播一个小提示:Fiddler在这个地方可以移除图片和CONNECT这些干扰项。
Fiddler移除图片、CONNECT、非200状态码的请求
抓不到包就没法继续了,那么这种情况应该怎么办呢?不要慌,看完这篇文章后你就能轻松通杀90%以上无法通过直接设置个系统代理就能抓到包的APP。
(本文中因为【淘最热点】这个APP的反抓包弱的跟鸡一样,就先只介绍两种方法,等有更高难度的样例APP再来写中级/高级篇吧,当然只会这两种就已经可以通杀90%以上的了。。)
那么我们开始吧。。。
全局代理法
这里使用Proxy Droid(GitHub仓库:https://github.com/madeye/proxydroid)来实现全局代理的效果,注意它需要ROOT权限才能使用。
Proxy Droid的原理是通过iptables将所有TCP连接的端口全部重定向到代理的端口上,强制性地让APP的请求走代理。
可以选择自己编译APK后安装,也可以选择直接在应用商店(http://app.mi.com/,备用1:https://cn.apkhere.com/app/org.proxydroid)里下载安装,安装完后给它ROOT权限就可以开始使用了。
以下为演示部分:
设置好系统代理后打开Proxy Droid并设置好代理服务器的IP和端口(与系统代理填写一致即可),然后点击开启按钮。
此时再抓包就能抓到这个APP的列表页请求了。
2、VPN抓包法
如果全局代理还不行的话,可以尝试使用VPN抓包法,这里使用Packet Capture(https://www.coolapk.com/apk/app.greyshirts.sslcapture)来实现,这个APP不需要ROOT权限就能使用。
Packet Capture的原理是在本地创建一个VPN,使所有请求都从VPN中流过,从而实现不使用代理抓包的效果。(这个APP没有开源,处理部分都是调用的so库,APP本身只是个壳,想要看代码的话需要有一定的Android逆向知识和经验)
未开启抓包界面
开启抓包后界面
再插播一个小提示:使用Packet Capture抓包时可以只看某个APP的请求,设置方式如下
点击图中画框的图标,会出现一个搜索界面,输入你要抓包的APP名并点击启动抓包就可以了。
那么对这个APP抓包试试
成功抓到新闻列表请求
轻松抓到它的新闻列表。
不过Packet Capture的缺点也很明显,因为只有手机上的APP,并且没有能让PC端连接的接口,所以如果APP在短时间内发出的请求过多,想要找到需要的那一个就是一件很令人头疼的事情了。
好了,学会这两招的你现在已经可以通杀90%以上抓不到包的APP了( ﹁ ﹁ ) ~→
作者其它好文推荐:当你写爬虫时遇上Flash+加密的解决方式
Python的爱好者社区历史文章大合集:
2018年Python爱好者社区历史文章合集(作者篇)
2018年Python爱好者社区历史文章合集(类型篇)
福利:文末扫码关注公众号,“Python爱好者社区”,开始学习Python课程:
关注后在公众号内回复“ 课程 ”即可获取:
小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】
小编的Python的入门免费视频课程!
小编的Python的快速上手matplotlib可视化库!
崔老师爬虫实战案例免费学习视频。
陈老师数据分析报告扩展制作免费学习视频。
玩转大数据分析!Spark2.X + Python精华实战课程免费学习视频。