App爬虫进阶 |
您所在的位置:网站首页 › 大麦网为啥下载不了软件 › App爬虫进阶 |
阅读本文所需要的基础知识:本文假设你已经掌握了基本的app抓包流程,电脑上Fiddler或同类型抓包工具,有夜神/逍遥/雷神或任一手机模拟器,且模拟器安装了Fiddler的证书。但在抓包过程中遇到了断网、闪退等状况。 抓app包时断网、被检测、闪退是爬虫工程师经常会遇到的事,本文介绍几个可能的原因和可能的解决方案。 潜在原因-模拟器不适配该app 别笑,真的有这种奇葩无语的可能,而且还不少见,换成真机或者另一个软件的模拟器试试。 Android版本不适配该app 部分app的最低版本限制已经到了Android 5,针对这类app,Android 4.3或者更低版本的模拟器就会报错和闪退。针对上述出现的问题,我非常建议使用真机,模拟器在很多情况下确实心有余而力不足。 app自身做了防护 app在模拟器中启动和运行正常,但抓包时就会闪退、无网络、报错,这一类问题就是本文研究的重点。这种一般是App自身做了防护,最常见的一种就是SSL证书验证(SSL Pinning)。比如抖音、小红书,FaceBook,Twitter等app,都有这种验证和防护。 SSL Pinning一种用来防止中间人攻击的技术,广泛应用于阻止app的抓包和嗅探。 众所周知,Fiddler这一类抓包软件本质上就是一种中间人攻击,所以一旦遇到了SSL Pinning就凉凉了。但我们肯定不能让SSL验证阻拦我们抓包的脚步,我们可以通过如下的方法解决SSL证书验证。 1. 降低版本——降低App和Android系统的版本 很多SSL验证和其他防护都是在新版app中才有的,而且一些方案都是Android 7.0以后才开始生效,所以为了抓到包,我建议的配置环境是Andorid 5的模拟器 + 较低版本的APP。 如何获得较低版本的APP,百度豌豆荚应用商城,可以下载APP的历史版本,有的app太旧的版本是无法正常使用的,所以需要多尝试几个旧版,一般来说,只距离现在半年的app版本是可以用的。 2.禁止校验——禁止app内部的ssl 证书校验 如何禁止app内部的ssl 证书校验?我们可以直接Hook掉app验证SSL Pinning的方法(由于这一篇教程是提供解决方案,所以不会阐述太多原理,而会着重讲解实现的步骤和细节上) Android平台上我们可以使用Xposed+Justtrustme,ios中也有其实现,ios可以参考这个github项目https://github.com/nabla-c0d3/ssl-kill-switch2。 Xposed是什么Android平台最强大的框架,它可以在不修改APK的情况下影响程序的运行,Xposed是一个框架和平台,里面有许多IT工程师编写的功能模块,比如直接把APP的界面改成自己想要的样子,去掉界面里不喜欢的东西, 自动抢红包,消息防撤回,步数修改等等。 JustTrustMeXposed中的一个模块,可以禁止app内部的证书校验。 安装Xposed为了体现效果,我们这次采用直采宝这个app作为例子,所有的app和资料可以在百度云中下载。 链接:https://pan.baidu.com/s/1Tc5gMYZHYb7-IJCBeHddFQ 提取码:cayq 我们这次选择Android 7.0的真机,大家也可以使用模拟器,在直采宝这个app上没有区别。但比如小红书这一类app,它自身会检测是否为模拟器,这一类app我们酒=就需要真机操作。 首先我们安装和运行直采宝,界面如下 首先需要说明,Xposed框架需要root权限,且有让手机变砖的风险,而优点是可玩性高,功能性强大。我们在这儿采用一个更优的方案——太极Xposed框架。 太极Xposed是国内大神开发的一款免root Xpose框架,对于真机来说,真是再好不过。 首先安装太极Xposed(我的百度网盘里有这个教程所需要的全部apk和资料),然后安装。
![]() ![]() 除此之外,大家可以拿小红书试一下,以下是Xposd+Justtrustme前后的对比图。 Xposed之前 OK!!! 本篇教程已经结束了,希望大家多多关注我下半年的app逆向教程,两开花两开花。 参考文档: https://blog.csdn.net/coder_pig/article/details/80031285 https://www.jianshu.com/p/22b56d977825 https://zhuanlan.zhihu.com/p/56397466 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |