移动端 爬虫工具 与 方法 介绍

本文主要介绍了移动端爬虫的工具与方法,包括抓包模拟(中间人攻击原理、Fiddler配置、SSL Pinning解决)、模拟点击(UIautomator、Airtest使用)、APK逆向(反编译、脱壳、Hook框架)等,适合移动端爬虫初学者入门。
摘要由CSDN通过智能技术生成

From:https://www.cnblogs.com/zyfd/p/9681080.html

本文主要介绍了移动端爬虫的工具与方法,作为一个入门的大纲。没有详细介绍的也给出了本人学习过程中借鉴的资料的链接,适合对移动端爬虫感兴趣的同学入门。

一、抓包模拟

基本原理(中间人攻击)

中间人攻击:在中间人攻击中,攻击主机通常截断客户端和服务器的加密通信。攻击机以自己的证书替代服务器发给客户端的证书。通常,客户端不会验证该证书,直接接受该证书,从而建立起和攻击机的安全连接。这样,客户端发送的数据,都会被攻击机获取和解密。

工具介绍

  Fiddler charles anyproxy
手机安装证书 需要 需要 需要
支持抓取 http/websocket/https(单向认证) http/websocket/https(单向认证) http/websocket/https(单向认证)
支持平台 win/mac/linux(受限) win/mac/linux win/mac/linux
脚本开发 Jscript.net 未知 js

具体的报文走向如下

手机上的配置方法(以Fiddler为例,其它类似)

  1. 准备工作:手机与PC在同一个局域网内(可以连同一个WIFI,或者电脑插入移动WIFI)
  2. 配置步骤见下:

参考链接: https://blog.csdn.net/gld824125233/article/details/52588275

特别说明,抓不到报文可能的情况

1、单向双向 https

https的抓包原理是基于中间人攻击的方式,但是这种方式只适用于单向认证的方式,也就是只是客户端去检验服务端的证书。而双向认证的Https,服务端还会校验客户端的证书。https握手过程如下:

如何检测是双向认证还是单向认证,可以通过wireshark抓包看双方的协商过程,证书的交换是否是双向的。

解决办法:暂时没有好的办法解决这个抓包的问题

2、ssl pinning

ssl pinning:证书锁定 Certificate Pinning 是SSL/TLS加密的额外保证手段。它会将服务器的证书公钥预先保存在客户端。在建立安全连接的过程中,客户端会将预置的公钥和接受的证书做比较。如果一致,就建立连接,否则就拒绝连接。Certificate Pinning在手机软件中应用较多。因为这些应用连接的服务器相对固定,可以预先将服务器的X509证书或者公钥保存在App中。例如,苹果应用商店Apple App Store就预置了这个功能。当使用中间人工具或者Fiddler之类的工具拦截数据,就会造成应用商店无法联网的情况。

解决办法:手机安装 xposed 和 Justtrustme 插件(https://github.com/Fuzion24/JustTrustMe)

抓取实现

抓到报文后,就可以模拟请求了。请求发送的几种方式:

  • 抓包工具里面提供了发送功能,Fiddler 中的 Composer 标签里提供了此功能。

  • Chrome 的 Postman 扩展程序 也可以用来发送报文。

  • Python 中的 requests 包也可以方便地实现

缺陷

  1. 如何构造更多的请求?(常见的分页请求、更换查询参数等)

  2. 如果抓不到包怎么办?(如果通信走 socket 怎么办?)

  3. http 参数中包含加密、签名字段,如何找到参数的生成方法?

二、模拟点击

基本原理(基于UIautomator)

通过程序模拟人的行为对APP的界面进行点击、滑动等操作,同时可以获取APP的Activity页面上的大部分控件上的文本信息(有一些可能获取不到,Uiautomator本身就获取不到)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值