某网易易盾滑块验证码

本文详细介绍了如何逆向分析网易易盾的滑块验证码,包括acToken、fp、cb等关键加密字段的获取方法,以及滑块验证接口的数据参数分析,最后展示了如何模拟轨迹进行验证码校验,目前测试通过率100%。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

⚠️前言⚠️

本文仅用于学术交流。
学习探讨逆向知识,欢迎私信共享学习心得。
如有侵权,联系博主删除。
请勿商用,否则后果自负。

网址

弹出式滑块验证码: aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc=
在这里插入图片描述

验证码信息接口

先看一下接口请求信息
  1. 请求参数,经测试其中 acToken,fp,cb 需要通过逆向js获取,其他可固定
    在这里插入图片描述
  2. 响应信息中包括 图片信息 以及 token 值【token在滑块验证接口需要用到】
    在这里插入图片描述
<think>好的,我现在需要帮助用户分析易盾滑块验证的逆向分析方法,特别是关于irToken的处理。首先,用户提供的代码片段中有一些关键函数,比如get_cb、J_f8、get_track_encrypt和get_data_。我需要逐步理解这些函数的作用以及它们如何与irToken交互。 首先,用户提到的main.js代码中有require语句和loader函数的使用。看起来,模块加载器被用来动态加载不同的模块,比如loader(71)、loader(10)和loader(36)。这可能意味着代码被模块化了,不同的功能被分散在各个模块中,这增加了逆向分析的难度。 接下来,x = window.loader(71),然后get_cb函数返回x(),这可能意味着x是一个生成某种回调或令牌的函数。而irToken可能是通过这个x()生成的,需要确认这一点。例如,用户提到的irToken可能是在get_cb中生成的,或者在其他地方生成后被传递到后续处理中。 然后,J_f8被赋值为loader(10)的xorEncode方法,这可能是一个加密函数,用于对滑块轨迹进行异或编码。在get_track_encrypt函数中,遍历数组arr,对每个元素i进行J_f8(token, i + '')处理,这里的token可能是irToken或者其他令牌,需要进一步分析。这里的i可能代表滑块的移动轨迹数据,而加密后的track_encrypt会被发送到服务器进行验证。 另外,get_data_是从loader(36)的_options.methods.onMouseUp中获取的,这说明滑块验证的鼠标抬起事件处理函数可能在这里定义。get_data函数将轨迹数据、加密后的数据、token和x_end作为参数传递给get_data_,这可能负责最终的数据提交。 现在,用户关心的是irToken的处理方式。可能的处理步骤包括生成irToken、在加密过程中使用irToken,以及将irToken包含在提交的数据中。需要分析这些函数如何生成和使用irToken。例如,irToken可能在get_cb中生成,作为加密的密钥,或者在get_track_encrypt中被用作token参数。 逆向分析的关键点可能包括动态调试,使用浏览器开发者工具设置断点,观察各个函数的输入输出,特别是x()生成的值的结构,以及J_f8函数的实现细节。此外,需要查看网络请求,确认提交的数据中irToken的位置和格式,以及加密后的轨迹数据如何与irToken关联。 还需要注意反调试机制,易盾可能会检测开发者工具,导致代码无法正常执行或触发调试陷阱。因此,可能需要使用无头浏览器或修改浏览器配置来绕过这些检测。 总结来说,分析irToken的处理需要关注其生成方式、加密过程中的使用,以及最终如何被提交到服务器。通过动态分析和代码审计,逐步跟踪数据流,理解各个模块的作用,从而逆向出整个验证流程。</think>### 易盾滑块验证逆向分析(irToken处理) 根据提供的代码片段和逆向目标,以下是关键分析步骤及irToken的可能处理方式: --- #### **一、核心代码模块解析** 1. **`get_cb`函数** ```javascript function get_cb(){ return x() } ``` - `x()`来自`window.loader(71)`,推测是生成动态令牌(如irToken)的入口 - **irToken生成逻辑**:可能通过时间戳、随机数、环境参数等组合加密生成[^1] 2. **`J_f8`加密函数** ```javascript J_f8 = window.loader(10)['xorEncode'] ``` - 使用异或加密算法对轨迹数据进行混淆 - **irToken作用**:可能作为加密密钥参与`J_f8(token, i + '')`,将原始轨迹`i`与token绑定加密 3. **数据提交函数** ```javascript get_data_(track, track_enc, token, x_end) ``` - `token`参数极可能是irToken - 最终提交数据包含加密轨迹、token及其他验证参数 --- #### **二、irToken逆向关键点** 1. **动态生成分析** - 通过Hook `x()`函数,记录其返回值格式(如长度、字符集) - 检查是否包含时间戳(如`Date.now()`)、硬件指纹(如canvas指纹)等特征 2. **加密链路追踪** - 对`J_f8`函数进行逆向,确认其是否为标准异或加密或自定义变种 - 验证`token`参数在加密过程中的作用: ```javascript // 示例加密过程伪代码 function xorEncode(token, data) { return data.split('').map(c => c.charCodeAt(0) ^ token.charCodeAt(i % token.length)); } ``` 3. **网络请求验证** - 使用抓包工具(如Charles)观察最终请求字段: ```json { "irToken": "a1b2c3...", "track_enc": ["加密数据1", "加密数据2"], "x_end": 320 } ``` --- #### **三、逆向实操建议** 1. **动态调试** - 在浏览器开发者工具中对`loader`函数下断点,追踪模块加载过程 - 使用`console.log`注入打印`x()`的输出值及加密前后数据 2. **反调试绕过** - 易盾可能检测`devtools`,需使用无头浏览器(如Puppeteer)或禁用调试检测脚本 - 修改本地代码:替换`console.debug`等敏感函数为空实现 3. **加密算法复现** - 提取`loader(10)`模块代码,还原`xorEncode`逻辑 - 编写Python等价加密函数验证可行性: ```python def xor_encode(token: str, data: str) -> str: return ''.join([chr(ord(c) ^ ord(token[i % len(token)])) for i, c in enumerate(data)]) ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傲娇的小苹果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值