爬虫逆向学习(十四):分享一下某数通用破解服务开发经验

ops/2024/12/17 9:27:05/

阅前须知

这篇博客不是教大家怎么实现的,而且告知大家有这个东西,或者说一种趋势,借此分享自己大致的实现经验。具体的实现我也不好整理,毕竟是在别人的基础上缝缝补补。

前言

使用补环境方式破解过某数的同学都知道,它的核心代码就三部分

  1. meta包含的content
  2. 外链js
  3. 自执行函数(新版(六代)不是自执行函数,且执行顺序比外链js先)

这三部分是缺一不可的,其中除了外链js外其它两个在每次生成时需要动态传入。具体可以看看这两篇博客的破解方式
爬虫逆向学习(六):补环境过某数四代
爬虫逆向学习(十三):某房地产升瑞六了,分享一下破解经验

以我补过的情况可以确定大部分的补环境代码是一样的,部分需要根据不同站点的变现进行针对补充优化,这样我们把相同的代码抽离出来,然后搞成一个接口服务,这样能大大方便我们进行某数站点破解。

补环境框架

记得听别人说过:如果你的环境补的够多,跟浏览器越一致,理论上你能破解通杀。话可能有点过,但是经过这次开发后我多信了几分。

举个例子,之前在破解参数后缀时我折腾了很多种方法,最后是使用了正则匹配才实现动态生成的,这对通用化可不友好。
爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD

但是补环境框架直接把原生XMLHttpRequest补好了,那我们就可以直接参考浏览器的生成方式得到结果了,很是方便。
在这里插入图片描述

这里我是借鉴开源项目进行重构的,从零开始开发太耗费时间,对应的你需要付出熟悉别人项目的时间。

破解调通

理论上只要把原先手部的环境代码接入框架就可以调通了,不过由于框架补的环境够多,可能会让代码控制流走向其它分支,所以遇到报错还是得看具体缺啥

VM2下如何调试

补环境框架基本使用的vm2,在纯净V8下执行的代码,这样我们直接调试是不行的,要在vm2下运行是要把所有代码都传进入的,那我们可以拿到这些代码直接用来调试,找到报错位置补全环境。
在这里插入图片描述

补成功请求400

这种情况在手补时没遇到过,这种是补的环境被检测了导致请求400,之前手补时没有加上这两个会出现这种情况
在这里插入图片描述

这次在接入某房地产时一直是400,折腾了很久,最后通过其它博客试了才成功的。在补环境框架里需要把document.body设置为null,不然无法成功,对于这种情况实在不好发现,因为手补时并没有问题,只能是根据日志去对应发现问题。
在这里插入图片描述

其它就怎么遇到奇葩的问题,本质上就是补全或者修改破解需要节点及其属性,所花时间取决框架的健全性,在这种情况下,不建议直接修改项目源码,因为补环境框架是向浏览器环境看齐的,如果你直接修改了会污染针对其它情况的破解

最终的效果是拿到json数据,根据传入url有无返回后缀参数
在这里插入图片描述
在这里插入图片描述

接口搭建

{'user_config': {  // 用户配置,'env': {'location': {'href': url},'document': {'referrer': url}}},'url': url,  // 需要生成后缀参数的链接'meta_content': meta_content,  // meta content'self_func': js_code  // 自执行函数 or script代码,需要base64压缩
}

使用nodejs搭建api服务,接口设置以上四个参数用来实现动态破解,这样就能把接口通用化了,一切以接口得到的数据为最优先

测试了十几个网站都能快速接入成功,如专利局
在这里插入图片描述


http://www.ppmy.cn/ops/142608.html

相关文章

如何排查服务器是否有被黑客入侵的迹象?

排查服务器是否被黑客入侵是系统维护的重要工作。以下是详细的排查步骤,通过分析日志、检查用户、进程、网络连接等多个方面来判断服务器是否存在被入侵的迹象。 一、入侵的常见迹象 在开始排查之前,以下是一些常见的入侵迹象,若发现这些情况…

uniapp+uview 图片预览组件

uniapp uview 图片列表预览组件 注意&#xff1a;在app端需要先判断是否存在手机相册权限 <template><!-- css使用的是uview1.0组件中的css --><!-- u-image 使用的是uview1.0的组件 --><view class"u-flex u-row-between u-flex-wrap">&…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

基于GIT模型的智能图像描述生成器

导入必要的库: from transformers import AutoProcessor, AutoModelForVision2Seq # 用于加载和使用模型 from PIL import Image # 处理图像 import requests # 下载网络图片 from IPython.display import Image as IPImage, display # 显示图像主要函数 analyze_image: …

配置ssh-key连接github

GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。 具体内容参考如下链接 https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent mac配置 ssh-keygen -t ed25519 -C …

环境和工程搭建

1.案例介绍 1.1 需求 实现⼀个电商平台 该如何实现呢? 如果把这些功能全部写在⼀个服务⾥, 这个服务将是巨⼤的. 巨多的会员, 巨⼤的流量, 微服务架构是最好的选择. 微服务应⽤开发的第⼀步, 就是服务拆分. 拆分后才能进⾏"各⾃开发" 1.2 服务拆分 拆分原则 …

第三十一章 Spring之假如让你来写事务——融入IOC容器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…

Python解释器和PyCharm详解

目录 1.什么是Python解释器? Python解释器的类型和特性 Python解释器的优势 2.什么工具可以写Python文件? 3.为什么Python解释器和PyCharm不在同一个网站? 1.什么是Python解释器? Python解释器‌是Python程序运行的核心&#xff0c;它的主要作用是将Python代码转换为…