逆向日期:2024.08.02
使用工具:python、Node.js
本章知识:逆向网易易盾【data】参数里的【d】【p】【f】【ext】参数
文章难度:中等(没耐心的请离开)
文章全程已做去敏处理!!! 【需要做的可联系我】
AES解密处理(直接解密即可)(crypto-js.js 标准算法):在线AES加解密工具
注意 注意 注意!!!
为了保护本作者可以持续的更新知识,此次逆向出的网站源码代码不分享,有需要可以直接找我。但作者所写出的代码(非网页源代码)会在网站最低部公示。
看此文章前请先看预热阶段的文章!!!
【Python 逆向网易易盾滑块】(实战一)预热阶段
【Python 逆向网易易盾滑块】(实战二)逆向【fp】参数
【Python 逆向网易易盾滑块】(实战三)逆向【cb】参数
本篇文章逆向网易易盾的【data】参数里的【d】【p】【f】【ext】参数,先看图片和视频

1、打开某某网站(请使用文章开头的AES在线工具解密):Fm5MEvkUJN2pPTwS2vZbsXghwyHOyrcScCaJUwb7+kOMuzt/TW46136qDKIb3PTd
2、打开网站后,我们随便填写信息,然后打开控制台,点击发送验证码,即可触发滑块验证,然后我们随便滑动一下,可以在控制台里看到【data】参数,直接去断点找

3、打开启动器,然后在堆栈里先大致浏览一遍,看看整个参数的生成方法在哪里

4、没想到,一下就找到了,我们点进去

5、我们打上断点,然后滑动一下滑块,让他在这个位置断住
6、滑动滑块后断住了,然后可以看到,他最后一次的动作是将内容转换成了字符串,这里要记住,最后一步转为字符串,考试要考的

7、接下来了要开始分析了,分析一下构成,看从哪里下手方便。
【d】参数进行拆解,可以看到有一个N实际名为CC的方法,是用来加密的,然后还有一个是H,里面是列表,暂且不知道他是怎么生成的,但我们很清楚的知道,【d】的参数是由CC加密得来的。

【p】参数进行拆解,里面也有一个N实际名为CC的方法。还有一个J实际名为C8的方法。哪个CO是一个token,在刷新滑块的时候就会附加有一个token。然后就是你滑动滑块的距离,这个距离是要用来传参进去的,经过计算后会得出一个新的数值



【f】参数进行拆解,里面也有【N】【J】【C0】这都不用说了,这里又有新的方法,一个j实际是h的方法,还有一个【unique2DArray】方法,这个方法到时候把一起复制即可,为了保证我们的运行不会出问题,尽可能的去用别人的代码,防止魔改。下面还有一个列表,列表里装的是什么你猜猜,现在告诉你,列表里有三个值,第一个值代表滑块的左右距离,切记,不是拼图距离起始点的距离,而是下方的蓝色箭头距离起始的距离。第二个参数是上下浮动,这个参数固定写0即可。第三个参数是时间,通过时间戳计算的,你从开始的时候有一个时间戳,每次拖动一下就会用新的时间戳减去起始时间戳,就会得出这个值。



【ext】参数进行拆解,前面一样的就不用讲了,然后我们看一下他里面,有一个固定值,就不用说了,还有一个数值8,这个数值8是通过计算列表内的长度得出的数值,也没什么好说的,到此就分析完成了。

【总结一下】由于【d】【p】【f】【ext】这几个参数的生成要涉及很多个方法,而这几个加密方法又是来回关联的,所以我们在逆向的时候要多注意代码的管理,把方法放到全局还是局部,都是很重要的,一不注意就会导致方法调用错误,所以我们要多加细心。
8、哦对了,好像有一个参数忘了讲了,就是这个。这个是我最后一个研究的对象,发现这个参数是经过加密滑块轨迹的来的,看看下面的图。
9、分析完成后,我们就要开始扣网页里的代码了,粘贴完成后,别忘了再大致处理一下代码,乱糟糟的看不下去。


10、接下来就是正常的扣代码环节了,运行本地js,报错了,显示方法未找到,那我们就去网页打上断点,然后随便触发一下滑块。然后鼠标放到N上,会弹出一个窗口,我们点进去


11、然后我们就跳转到这里了,我们把代码复制到本地,然后把所有调用N方法的名字,都改成CC,因为他们都是调用CC的,所以我们这里都改成CC即可

12、然后我们再次运行本地js,看缺少什么方法,仍然是去浏览器直接复制粘贴到本地js,到这里你基本就都会了,如果还不会,说明你逆向的网站还是太少了,要多加练习,多逆向,多动脑。

13、接下来我也就没什么可以给大家演示的了,基本都是一样的操作,给大家运行一下看看效果,代码略有修改。逆向完成后大家别忘了把数据都打包成一个运行方法,因为到后面需要使用python去调用,如果你不打包成方法,等你用python去调用的时候就没法调用,而且会很乱的。
下一篇文章我将会给大家讲一下OCR识别滑块、滑块轨迹的生成、包括如何用python轻松调用js文件生成参数,顺便再详细讲一下这个滑块的细节问题。

【附上代码】由于网页原代码受保护,在次不能进行公开,还请谅解
