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

阅前须知

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

前言

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

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

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

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

补环境框架

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

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

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

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

破解调通

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

VM2下如何调试

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

补成功请求400

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

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

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

最终的效果是拿到json数据,根据传入url有无返回后缀参数

接口搭建

python 复制代码
{
    '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服务,接口设置以上四个参数用来实现动态破解,这样就能把接口通用化了,一切以接口得到的数据为最优先

测试了十几个网站都能快速接入成功,如专利局

相关推荐
小李不想当小白9 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
2601_9679791210 小时前
0 到 1 学爬虫:用 Python 爬取网页数据指南一(附实战案例)
爬虫·python·实战案例·html解析·网页数据
姚瑞南12 小时前
【PRD】招投标商机雷达爬虫系统
人工智能·经验分享·笔记·爬虫·产品运营·产品经理
adinnet202613 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
lazy H13 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
试剂界的爱马仕15 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习
小向是个Der15 小时前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
学网安的肆伍15 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
海绵宝宝转agent16 小时前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先
小oo呆16 小时前
【学习心得】MCP工具开发学习笔记
笔记·学习