极验3滑块逆向分析

在这里插入图片描述

1、底图还原

下 断点,可以分析底图还原逻辑
在这里插入图片描述

2、跟W值

var Str_Unicode=function(str){var unid='\\u00';for(let i=0,len=str.length;i<len;i++){if(i<len-1){unid+=str.charCodeAt(i).toString(16)+'\\u00';}else if(i===len-1){unid+=str.charCodeAt(i).toString(16);}}return unid;
}

JS里面是被编码的,可以把W值编码,进行查找,在JS里面搜索u0077":

var u = r[$_CAHJR(706)]()
, l = V[$_CAIAZ(339)](pt[$_CAHJR(278)](o), r[$_CAHJR(721)]())
, h = m[$_CAIAZ(769)](l)"w" =  h + u

这里边的W值为 h+u, 可以按照逻辑挨个处理

2.1 分析U生成
2.1.1 处理明文

在这里插入图片描述

(65536 * (1 + Math[$_BFBFy(14)]()) | 0)[$_BFBFy(287)](16)[$_BFBEu(489)](1)

对明文进行改写

var ne = function () {function t() {return ((1 + Math["random"]()) * 65536 | 0)["toString"](16)["substring"](1);}return function () {return t() + t() + t() + t();};
}()
2.1.2 处理加密方法

1、 全局扣代码形式

  • 复制所有的JS代码,然后使用xl导出全局U方法
new U()[$_CBGAZ(353)](this[$_CBFJo(756)](t))
new window.xl()['encrypt']("293844e47865d090")

在这里插入图片描述

2.2 分析l
l = V[$_CAIAZ(339)](pt[$_CAHJR(278)](o), r[$_CAHJR(721)]())

经过替换后

l =   V['encrypt'](pt['stringify'](o), ne())

pt蛮猜是一个json对象,因为需要把JavaScript对象转成json字符串。需要处理的是o

2.2.1 处理o值

在这里插入图片描述

经过2次比对,发现有几个值在变动

1、先处理aa的值
  • 发现在最上边设置的、跳第2个栈、查看第2个参数

在这里插入图片描述

l =  n['$_CICe']['$_BBES'](n['$_CICe']['$_GFJ'](), n['$_CJT']['c'], n['$_CJT']['s']);

发现 n['$_CICe']['$_BBES']是方法,需要传递3个参数

  • 'g!).-,-(!!U(tsyyt(yyt()s)yvvs(!!(K92011120202019219$/*'
  • [12, 58, 98, 36, 43, 95, 62, 15, 12]
  • 2a796138

注:查看n['$_CJT']可以得出后2个值是图片接口获取的

在这里插入图片描述

跟栈查看第一个值得结果

在这里插入图片描述

注:这里面是对轨迹进行加密,可以使用全局导出加密轨迹

往上跟堆栈,修改参数导出,然后全局调用

在这里插入图片描述
在这里插入图片描述

window.get_ps = W[$_CJEZ(251)]["\u0024\u005f\u0047\u0046\u004a"]

在这里插入图片描述

2、处理其他值

参数在这里生成的,可以调试结果
在这里插入图片描述

4、处理L值

该值需要传入2个参数进行加密,生成一个大数组,第一个参数是轨迹信息,第2个参数是随机得值,加密完成返回数组。

在这里插入图片描述

可以直接使用全局导出V方法,然后直接传值即可,导出得地点在V函数外边,然后调用'encrypt'这个方法。结果如下

在这里插入图片描述

2.3 分析h
h = m[$_CAIAZ(769)](l)

导出这个方法

在这里插入图片描述

在函数外部进行导出
在这里插入图片描述

方法调用

function get_h(){h = window.h["\u0024\u005f\u0047\u0047\u0063"](get_ls())return h
}

W值得最终结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nums1[p…

ubuntu 22.04 安装 RTX 4090 显卡驱动 GPU Driver(PyTorch准备)

文章目录 1. 参考文章2. 检查GPU是Nvidia3. 卸载已有驱动3.1. 命令删除3.2. 老驱动包 4. 官网下载驱动5. 运行5.1. 远程安装关闭交互界面5.2. 运行5.3. 打开交互界面 6. 检测与后续安装 1. 参考文章 https://blog.csdn.net/JineD/article/details/129432308 2. 检查GPU是Nvid…

Golang | Leetcode Golang题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; func merge(nums1 []int, m int, nums2 []int, n int) {for p1, p2, tail : m-1, n-1, mn-1; p1 > 0 || p2 > 0; tail-- {var cur intif p1 -1 {cur nums2[p2]p2--} else if p2 -1 {cur nums1[p1]p1--} else if nums1[p1] > n…

基于NTP服务器获取网络时间的实现

文章目录 1 NTP1.1 简介1.2 包结构1.3 UNIX 时间戳和NTP时间戳 2 代码实现2.1 实现步骤2.2 完整代码 3 结果 在某些场景下&#xff0c;单片机需要通过网络获取准确的时间进行数据同步&#xff0c;例如日志记录、定时任务等。然而&#xff0c;单片机本身无法直接获得准确的标准时…

(八)SQL基础知识练习题(选择题)(下)#CDA学习打卡

本文整理了SQL基础知识相关的练习题&#xff0c;共133道&#xff0c;可作为CDA一级的补充习题&#xff0c;也适用于刚入门初级SQL想巩固基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-SQL&#xff09;。暂时按照原题库顺序present&#xff0c;如有需要之…

vue+springboot用户注销功能

vue文件前端 <el-button type"warning" plain click"handleDeletion">注 销</el-button> // 注销 const handleDeletion (userName) > {ElMessageBox.confirm(注销该用户所有信息后无法恢复&#xff0c;您确认注销吗?, 注销确认, { type…

啥都吃的打字练习软件TL(TypeLetters)

今天给大家安利一款啥都吃的打字练习软件——TL&#xff08;TypeLetters&#xff09;。 为什么说TL啥都吃呢&#xff1f;很简单&#xff0c;因为不管是科技的、还是时事的、或者潮流的、或者热点的&#xff0c;凡是英文的资料TL都能通通吃下去&#xff0c;所以说TL是来者不拒&…

24年湖南三支一扶报名详细流程(电脑报名)

24年湖南三支一扶报名详细流程&#xff08;电脑报名&#xff09; #湖南三支一扶 #湖南三支一扶考试 #三支一扶报名照片 #三支一扶考试 #三支一扶 #湖南省三支一扶

新的语言学习系统: 记忆镶嵌

摘要 记忆镶嵌是由多个关联记忆网络协同工作来完成感兴趣的预测任务。与transformer类似,记忆镶嵌具有组合能力和上下文学习能力。与transformer不同,记忆镶嵌以相对透明的方式实现这些能力。该研究在玩具示例上展示了这些能力,并且还表明记忆镶嵌在中等规模语言建模任务上的表…

Python | Leetcode Python题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instead."""p1, p2 m - 1, n - 1tail m n - 1whi…

跟TED演讲学英文:How the US is destroying young people‘s future by Scott Galloway

How the US is destroying young people’s future Link: https://www.ted.com/talks/scott_galloway_how_the_us_is_destroying_young_people_s_future? Speaker: Scott Galloway Date: April 2024 文章目录 How the US is destroying young peoples futureIntroductionVoc…

【格式控制】(中北大学-程序设计基础(2))

目录 题目 源码 结果示例 题目 从键盘输入一批数值&#xff0c;要求保留3位小数&#xff0c;在输出时上下行小数点对齐。 源码 #include <iostream>using namespace std;int main(void) {double a, b, c;cout << "请输入三个实数&#xff0c;中间用空格…