爬虫抓包问题全面分析

前言

很明显如果你抓不到包,那么写爬虫程序是一件无法下手的事情
在这里插入图片描述
目前很多公司越来越多的业务都转向到app端,那么app抓包就成为爬虫工程师必不可少的技能。从某种角度上讲,防止被抓包也是反爬的一种形式。下面将从各个方面讲解app抓包技巧, 讲解会遇到的各个问题及其相应的解决办法

网络七层模型

在这里插入图片描述
既然说到网路抓包,那么我们从网络七层模型开始说起,其实pc端爬虫往往只会关注应用层的数据抓包,但是很多大厂 的app已经很难从应用层抓到数据包,往往需要去解析传输层的数据,或者我们必须规避app去走tcp

抓包分析

其实我们很想能在应用层就抓到数据包,但是当我们打开fiddler抓包时,却会发现抓出来的包有一把锁
在这里插入图片描述
都是锁这特娘的怎么干活
在这里插入图片描述

下面我们对这些情况都分下类:

  1. 挂上代理后app提示没有网络,断开代理后app正常访问(证书验证)
  2. 挂上代理后app能正常访问,但是fiddler抓不到任何数据(不走代理)
  3. 挂上代理后app能正常访问,fiddler能抓到部分数据包,但是无法抓到关键数据包(发tcp)


以上就是应用层抓包你会遇到的所有问题

下面我们一个个来解决问题,在解决你的这些问题之前请确保你已经将fiddler证书安装到手机的根目录
(安卓7.0以上系统不再信任用户安装的任何证书)
可以参考这篇文章

https://blog.csdn.net/weixin_44249131/article/details/104650275

证书验证

原理:
app(客户端)往往带有ssl ping证书验证,而代理是无法直接带着真实的证书给到app客户端校验的,
解决办法:

  1. 选择 xposed的JustTrustMe模块,该模块是hook了Java层的主要网络请求库例如okhttp,UrlConnection等,让app不再去验证证书
  2. 如果方法1失败了,那么可能是开发者自己改写了网络请求库,那么你可以选择去追踪一下app的网络请求源码,去hook住那个请求库
  3. 直接获取apk的证书和证书密码(需要反编译),将证书安装到Charles就能顺利抓包

不走代理

原理:

  • 安卓开发者可以设置apk不走代理

解决办法:

  • android proxydroid 代理 APP全局代理强制把IP转发到代理端口上,关于该软件的使用可以参考
    https://blog.csdn.net/weixin_33711647/article/details/92018504

不走http请求

原理:

  • app开发者只用tcp去发送请求

解决办法:

  1. 手机端采用httpcanary抓包(可抓取tcp和http等),获取相应app的请求的服务端ip地址,然后用iptables屏蔽掉这些IP地址
  2. hook住app发送tcp的相关类,让他只走http
  3. 直接wireshark手撕tcp(高难度动作,会这波操作时请务必联系我)
    在这里插入图片描述

写在最后

现在爬虫的门槛越来越高,停止学习的会成为真正意义上的"爬虫工程师",继续学习的会面向监狱编程,加油打工人!!!
在这里插入图片描述
欢迎关注"python网络爬虫大数据与逆向工程"公众号,一起学习更多关于网络爬虫和逆向工程方面的知识

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值