您的位置:首页 > 游戏 > 手游 > 【Python 逆向滑块】(实战二)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

【Python 逆向滑块】(实战二)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

2025/1/11 14:16:25 来源:https://blog.csdn.net/weixin_46625757/article/details/140811981  浏览:    关键词:【Python 逆向滑块】(实战二)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期:2024.07.31

使用工具:Node.js、油猴

本章知识:逆向网易易盾【fp】参数

文章难度:中等(没耐心的请离开)

文章全程已做去敏处理!!!  【需要做的可联系我】 

AES解密处理(直接解密即可)(crypto-js.js 标准算法):​​​​​​在线AES加解密工具

 注意 注意 注意!!!

为了保护本作者可以持续的更新知识,此次逆向出的网站源码代码不分享,有需要可以直接找我。但作者所写出的代码(非网页源代码)会在网站最低部公示

看此文章前请先看预热阶段的文章!!!

【Python 逆向网易易盾滑块】(实战一)预热阶段

本篇文章逆向网易易盾的【fp】参数

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

3、我们打开启动器,在堆栈里断点找,找了一会没找到,但发现Cookie里有【fp】的参数,直接将去Cookie里看一下

4、正在Cookie看到了这个参数,我们在Cookie里看这个参数的时候,也顺便注意一下上面的【Path】,如果参数的【Path】对应的是【/】,就说明这个【fp】参数是本地生成,不是服务器返回的。既然不是服务器返回的,那我就尝试用HooK,断住他添加到Cookie的一瞬间

 对照一下参数,看看是不是一样的。

5、打开我们的油猴插件,新建一个油猴文件,把代码粘贴进去,然后修改一下要查找的Cookie的键值,保存并启用【HOOK文件将在文章末尾附加】

6、要确定已经打开了插件,并启用,然后我们把当前网站的Cookie清除并刷新页面,控制台别忘了打开,不打开控制台就断不住,清除当前网站的Cookie是因为他会有检测,当我们把值清除掉后,他就会生成新的,不然的话他就不生成了,不生成我们也就断不住了。

7、清除Cookie并刷新页面,断住了,然后我们直接去跟栈,看上一个栈是什么

8、经过跟栈,分析出他的加密位置就在【CO】里,我们把【CO】代码全部复制到本地打开,并且要

9、我们在堆栈 点击CO,然后再打上断点,然后再刷新页面,如果刷新页面没有断住,就用油猴重复上一步操作即可

10、此时我们要添加一个很重要的环境,就是window,然后根据情况把CO里面开头部分所不需要的都删掉,可以大大减少我们的工作量,最主要是删掉后不会对后面生成的参数有所影响

11、现在我们要做的就是运行本地的js,看哪里有错误,有错误我们就去解决错误,缺环境补环境,,缺变量补变量。直接运行js脚本,发现有一个错误是在第五行,这个时候我们直接去控制台运行或查看【L[0xe9]】,看看是什么,这个很明显就是一个被混淆了的值,我们将其恢复后直接添加到本地js里

12、这种混淆没什么难度,一个一个输入输出,然后替换一下即可,这种类似的我就不演示了,你们自行替换即可,我们直接跳过,来到下一步操作

13、当我们把那些混淆都处理完成后,我们再次运行本地js,可以看到出现了错误,显示的是【Cl】不存在,那我们就在控制台把【Cl】打上断点,然后运行,控制台自然会在【Cl】断住,,这个时候我们就可以把鼠标放到【Cl】上,会自动弹出一个链接,我们点击一下,他会自动跳转到【Cl】这个运行函数

14、可以看到,我们直接跳转过来了,我们把代码全部复制到本地js里,然后把混淆的代码手动恢复一下,然后再去运行本地js,看什么地方有错误,就去补充什么地方

15、此处要注意一下,这里有一个try,把这个try的代码都给删掉,不懂try的用法可以去百度一下,如果不删除,代码报错后是不会显示错误,仍然会继续执行,会造成和网页生成的参数的方法不一样,因为他报错后会跳过部分代码的执行,就会造成参数没有执行某一步,是没有删除还是没有添加,谁都不知道

16、处理完成后,我们再次运行本地js,发现【CK】未定义,你有没有发现,【CK】是在try里面的,如果我不删除try,可想而知,代码会自动跳过这个错误,不执行此段代码,那你往后执行的命令就全部都会出现问题

17、找到了【CK】,直接复制粘贴,这一步步的我就不在操作了。

18、在操作的时候也要注意几个事项,我们在写方法的时候,不要把方法都放在一起,因为有很多方法是重名的,只要我们把规范整理好就行,也不要去想这修改人家的方法名字,修改方法名字是最大的错误,因为有些方法是会自调用,就是自己调用自己,如果你修改了方法名字,那你的逆向难度将会上升一个等级,所有不要想着去修改人家的东西,我们尽可能的去遵顼别人的执行方法。

19、其他也没有什么可演示的,都是重复性去断点 复制粘贴,但难度还是有的,别大意,多注意堆栈的变化,包括一些随机性的错误,里面是有坑的,细心一点总没错

【附上代码】

🟢油猴脚本 - HOOK大法

// ==UserScript==
// @name         Cookie HOOOK大法
// @namespace    Cookie HOOOK大法
// @version      0.1
// @description  控制台追踪Cookie的变化
// @author       小木_.
// @match        *://*/*
// @grant        none
// @run-at       document-start
// ==/UserScript==// 【Cookie 捕捉】
var cookie_cache = document.cookie;
Object.defineProperty(document, 'cookie', {get: function () {return cookie_cache;},set: function (val) {// ****************** 要查找的cookie对象值if (val.indexOf('gdxidpyhxdE') !== -1) {console.log('[J] - 捕获到设置[*Cookie] - debugger -> ', val)debugger;}var cookie = val.split(";")[0];var ncookie = cookie.split("=");console.log('[J] - 捕获到设置[*Cookie] -> '+ `[${ncookie[0]}]==[${ncookie[1]}]`);// ****************** 是否添加cookie 此处可控制是否添加cookievar flag = true;var cache = cookie_cache.split("; ");cache = cache.map(function (a) {if (a.split("=")[0] === ncookie[0]) {flag = true;return cookie;}return a;})cookie_cache = cache.join("; ");if (flag) {cookie_cache += cookie + "; ";}return cookie_cache;},
});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com