阅读本文所需要的基础知识:本文假设你已经掌握了基本的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的界面改成自己想要的样子,去掉界面里不喜欢的东西, 自动抢红包,消息防撤回,步数修改等等。

JustTrustMe

Xposed中的一个模块,可以禁止app内部的证书校验。

安装Xposed

为了体现效果,我们这次采用直采宝这个app作为例子,所有的app和资料可以在百度云中下载。

链接:https://pan.baidu.com/s/1Tc5gMYZHYb7-IJCBeHddFQ
提取码:cayq

我们这次选择Android 7.0的真机,大家也可以使用模拟器,在直采宝这个app上没有区别。但比如小红书这一类app,它自身会检测是否为模拟器,这一类app我们酒=就需要真机操作。

首先我们安装和运行直采宝,界面如下
接下来,我们打开Fiddler,设置手机Wifi代理,并清除app缓存(或者卸载重装),再次打开app。

在网络状况良好的情况下,出现了app内断网的情况,除此之外,闪退、“您的app版本过久”、“正在连接中,app出现故障”等提示,其实也都只是友好的劝退方式,实际上是SSL Pinning检测到了我们的中间人攻击,并进行了阻拦。

使用Xposed+JustTruthMe禁止SSL 验证。

首先需要说明,Xposed框架需要root权限,且有让手机变砖的风险,而优点是可玩性高,功能性强大。我们在这儿采用一个更优的方案——太极Xposed框架。
太极Xposed是国内大神开发的一款免root Xpose框架,对于真机来说,真是再好不过。

首先安装太极Xposed(我的百度网盘里有这个教程所需要的全部apk和资料),然后安装。


Xposed的使用需要配置两个地方

  1. 模块管理——安装模块
    我们这儿用到的是Justtrustme模块,首先,我们在手机上像正常安装app一样将网盘中的Justtruthme apk包进行安装,注意,安装完成后是找不到的,因为它是一个无界面的app。之后,我们点击模块管理,将JustTrustMe勾选上,至此,模块这一块就配置好了。
  2. 应用配置
    点击创建应用,然后勾选直采宝,按照提示一步步操作即可。注意,太极Xposed框架会将本机的直采宝卸载掉,并在太极Xposed中安装一个新的直采宝,所以太极app需要有安装app的权限。
    一切完成后我们重新打开直采宝,SSL Pinning就已经被我们解决掉了。

除此之外,大家可以拿小红书试一下,以下是Xposd+Justtrustme前后的对比图。
Xposed之前

Xposed+JustTrustMe之后

OK!!!
本篇教程已经结束了,希望大家多多关注我下半年的app逆向教程,两开花两开花。

参考文档:
https://blog.csdn.net/coder_pig/article/details/80031285
https://www.jianshu.com/p/22b56d977825
https://zhuanlan.zhihu.com/p/56397466

App爬虫进阶——抓包拿不到数据怎么办相关推荐

  1. 那些年我用过的app爬虫常用抓包软件

    app爬虫抓包常用软件: 1.fiddler: 常用抓包软件之一,因为界面太过复杂,我不常用 2.Charles: 因为整体页面看着比较有规律性,功能相对来说还是比较齐全的,基本没满足日常抓包需求,所 ...

  2. linux 抓包工具_03-Python爬虫工程师-抓包工具

    Python爬虫工程师-抓包工具 Python爬虫工程师-抓包工具思维导图 mitmproxy抓包工具 介绍 mitmproxy就是用于MITM(中间人攻击)的proxy 特点: 1.和正常的代理一样 ...

  3. python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)

    没事想爬下数据,就入了scrapy坑,跟着https://zhuanlan.zhihu.com/data-factory这篇教程走,中间被小数量的网站坑过,不过还是写出了爬虫~~ 切糕王子:毫无防御, ...

  4. 漫画:App 防止 Fiddler 抓包小技巧!

    判断当前系统是否挂代理 获取当前系统是否设置代理,可以根据不同的 Api Level,分别通过 System.getProperty() 和 android.net.proxy.getXxx() 方法 ...

  5. Python 爬虫、抓包

    什么是爬虫? 爬虫就是模拟客户端(浏览器.电脑app.手机app)发送网路请求,获取相应,按照规则提取数据的程序. 模拟客户端发送网路请求:照着浏览器一模一样的请求,获取和浏览器一模一样的数据 爬虫的 ...

  6. 安卓抓包 python hook_搞定某APP的TCP抓包,并直接调用so文件进行Hook抓取

    APP抓包比较繁琐,尤其是对方优先走socket,发TCP包,而不是走应用层发http/https协议.这种抓包更烦躁,绝大部分利用中间人攻击原理这种代理抓包软件都抓不到tcp请求,代理抓包软件大都只 ...

  7. burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包

    0x00 序 在对app做安全测试时,通常会需要对app的网络通信进行抓包,但是面对app使用了https包时,由于手机没有burp的证书,因此可能会导致该次通信失败,所以下面的文章主要讲述如何通过b ...

  8. APP 怎么进行抓包接口测试

    在讲抓包之前,先讲个小故事: 某程序猿写JS,自己手机没电了,拿同事老王的安卓机调试,很简单的获取用户微信昵称,结果死活获取不到,一直显示为null.应该是跨平台问题,因为之前在自己iPhone上是没 ...

  9. 12Python爬虫---Fiddler抓包工具使用

    一.什么是Fiddler 二.爬虫与Fiddler不得不讲的事 三.Fiddler基本原理与界面 1.Fiddler工作原理 2.Fiddler界面 3.捕捉会话功能 四.Fiddler的QuickE ...

最新文章

  1. ASP.NET分页方法的了解程度
  2. 阿里云服务器win2003系统配置IIS+php+mysql+phpmyadmin+zend 500
  3. [原创]Maven实战-读书笔记
  4. 中文任务型对话系统中的领域分类
  5. VS2019 更新MSDN并创建快捷方式
  6. 算法python知乎_20个算法李小文知乎文章与Github代码汇总
  7. java日期时间各种变换及处理
  8. Springboot与jsp使用404错误
  9. spring配置mysql事务管理_Spring 数据库事务管理机制
  10. 蓝桥杯 ADV-225 算法提高 9-2 文本加密
  11. 最科学 最舒服 【色彩搭配】 平面设计师必备
  12. 身份与访问管理技术在智慧城市的应用
  13. 第十二章:(1)Fork/Join 分支合并框架
  14. 乐视网正式聘用刘延峰担任公司总经理 任期三年
  15. 正则表达式JS-1212
  16. 新库上线 | CnOpenDataA股上市公司财务报表数据
  17. chatgpt简单的问答机器人
  18. 如何修改打印服务器格式,打印机服务器设置了格式
  19. javascript教程系列-1.JavaScript基础
  20. RabbitMq 有啥用

热门文章

  1. Win11找不到本地用户和组怎么办
  2. laydate使用详解
  3. 渗透测试培训必会工具xray扫描器反连平台的使用(三)
  4. 基于微信公众号(服务号)实现扫码自动登录系统功能
  5. 三菱a系列motion软体_三菱M70第四轴参数设定一览表
  6. win32项目和win32控制台程序的区别
  7. 计算机网络安全技术功能有哪些,计算机网络安全技术课件(一) 安全技.ppt
  8. 如何获取多个数字的最大值?
  9. php源码 视频通讯,抖音无水印视频解析php源码
  10. wx图片的相机相册获取,预览图片,图片保存,图片的信息