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

阅前须知

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

前言

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

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

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

相关推荐
咖猫2 分钟前
google 的guava 学习 基本工具类
学习·guava
B站计算机毕业设计超人38 分钟前
计算机毕业设计Python+CNN卷积神经网络高考推荐系统 高考分数线预测 高考爬虫 协同过滤推荐算法 Vue.js Django Hadoop 大数据毕设
大数据·爬虫·python·机器学习·课程设计·数据可视化·推荐算法
伍贰什丿1 小时前
C语言学习day22:URLDownloadToFile函数/开发文件下载工具
c语言·c++·学习
伍贰什丿2 小时前
C语言学习day22:ReadProcessMemory函数/游戏内存数据读取工具开发
c语言·开发语言·学习·游戏
zmd-zk3 小时前
shuffle——spark
大数据·分布式·python·学习·spark
南宫生3 小时前
力扣-图论-14【算法学习day.64】
java·学习·算法·leetcode·图论
LuckyLay3 小时前
Golang学习笔记_11——指针
笔记·学习·golang·指针
lovelin+v175030409664 小时前
智能化API:如何重塑企业业务流程与用户体验
大数据·人工智能·爬虫·python·api
tt5555555555554 小时前
STM32一刷学习笔记--杂七杂八(1)
笔记·stm32·单片机·嵌入式硬件·学习