利用半自动补环境插件处理某乎算法

news/2024/7/19 10:07:14 标签: node.js, web安全, 爬虫

利用半自动补环境插件处理某乎算法

背景:

最近发现了一个半自动补环境插件,感觉还可以,然后人家我看别人的文章有个Demo。

简单理解了下什么原理,下面我就简单说下食用方法,用下来还是不错滴

仓库地址:https://github.com/cilame/v_jstools

某乎页面:aHR0cHM6Ly93d3cuemhpaHUuY29tL3NlYXJjaD90eXBlPWNvbnRlbnQmcT1weXRob24=

插件安装:

我安装的是「Commits on Aug 5, 2022」这个时间版本 因为前面的不知道为啥复制下来就是undefined

https://github.com/cilame/v_jstools/tree/1ee5bdea941b20745bb2b711f861719c71288723

image-20221112164123342

然后「解压」–> 「打开 chrome://extensions/ 页面 」–> 「打开开发者模式」 -> 「加载文件夹」就OK

然后找到插件,「打开配置页面」:

image-20221112164333644

这个是什么意思呢,就是在加载页面的时候会对涉及到的记录你在浏览器里面的值然后进行函数Hook

寻找算法:

打开页面找到浏览器请求,随便找一个就能发现:

image-20221112164555019

*我们先明确下我们的目标:找到如何组成2.0_xxxxxxxx的来路

  1. 先全局搜索「x-zse-96」能找到两处,这里我就直接说在这里打就OK:(格式化代码都会吧)
image-20221112164816132
  1. 刷新整个页面,分析断点处的信息:
image-20221112165048154

2.1 分析signature怎么来的:

断点不动,然后点击控制台,发现f()(s)是一串值【这里我们就暂时不分析这个怎么来的了(篇幅有限)】

image-20221112165138744

前面那个(0, F®.encrypt)是个函数,这里注意,鼠标放在控制台的函数返回上面双击会直接跳转到对应位置

image-20221112165323415

打上断点:

image-20221112165448702

开启插件,脱代码:

刷新页面,重新来到这里:

image-20221112165546072

这个时候就要分析代码了,看见下面的export.default是把这个D函数导出去了,反过来想这个函数就在这一块内

往上面翻看,会发现是个函数自执行,这样的话就开始扣代码。

image-20221112165952459

运行不报错就OK。

image-20221112170016454

然后你在某乎的控制台会发现大量的打印,那么就是Hook成功了,直接打造临时环境:

image-20221112170123715

创建Node环境:

创建一个env.js复制进去,然后记得先加载这个

image-20221112171401490

在Index.js 把扣的代码放进去,然后在Index.js最上面把env.js引入进来

image-20221112171429793

使用Node执行:(我是丢在沙盒里面的,无所谓没差啥)

image-20221112171521184

这样这个加密参数就出来了,然后里面是有随机值的,所以会发现每次执行不一样

整个使用的思想就是这样,再难也是拼经验、思路、耐心,先这样吧

假如没有这个插件?

没有这个插件就需要补浏览器环境了,运行代码缺啥补啥可以简单理解为,这里我先不展开说了,周末愉快。


http://www.niftyadmin.cn/n/5199.html

相关文章

SSM框架速成4:图书馆管理系统(SSM实战)

学完了三个框架,现在来整合一下SSM,并且实现一个图书馆增删改查的简单项目。 这个整合就是实现简单的CRUD,整合的过程中多复习有关于之前的一些知识和思想,本身并不难,只是可能再配置的过程中会出现很多问题&#xff0…

LeetCode-790. 多米诺和托米诺平铺【动态规划,矩阵快速幂】

LeetCode-790. 多米诺和托米诺平铺【动态规划,矩阵快速幂】题目描述:解题思路一:动态规划。四种状态。解题思路二:矩阵快速幂解题思路三:0题目描述: 有两种形状的瓷砖:一种是 2 x 1 的多米诺形&#xff0c…

vue弹窗如何嵌入其它vue页面

文章目录说明子组件,将要引入到弹框内的页面父页面思考组件 v-if 和 v-show 切换时生命周期钩子的执行说明 【1】实现方式,将其他页面作为组件传入 【2】在父页面,将该组件引入到弹框内,并通过动态渲染进行切换 子组件&#xff0…

Go的数据结构(感谢韩老师)

一 稀疏数组 1.1 先看一个实际的需求 编写的五子棋程序中,有存盘退出和续上盘的功能 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据 1.2 稀疏数组基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时&#x…

【Java-----IO流(八)之对象专属流详解】

序列化和反序列化定义 序列化:指把Java对象转换为字节序列的过程反序列化:指把字节序列恢复为Java对象的过程 序列化和反序列化的作用 序列化:在传递和保护对象时,保证对象的完整性和可传递性,对象转换为有序字节流&…

day01_计算机基础和环境搭建

day01 计算机基础1. 计算机基础1.1 计算机的概念1.2 编译器/解释器2. 学习编程的本质3. 语言的分类4. 练习5. 解答1. 计算机基础 1.1 计算机的概念 计算机的组成 计算机是有很多硬件组成的,常见的硬件有:CPU,硬盘,内存&#xff…

梦开始的地方 —— C语言内存函数memcpy-memmove-memset(使用+模拟实现)

内存函数 1.memcpy memcpy是C语言提供的复制内存块的函数,和字符拷贝函数strcpy有点像,但是strcpy只适用于字符,而memcpy适用整形、浮点型等于各种类型的数据拷贝。它有三个参数: destination:拷贝的目的地source&a…

Linux基础 - 虚拟化介绍(KVM)

‍‍🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 🌐所属专栏:『Linux基础』 🌌上期文章: Linux基础 - 服务管理(systemd) 📰如觉得博…