背景:

最近发现了一个半自动补环境插件,感觉还可以,然后人家我看别人的文章有个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

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

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

假如没有这个插件?

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