猿人web学刷题18

news2024/9/22 11:26:13

1.第十八题 jsvmp - 猿人学

问题:

1.第一页请求正常能返回数据

2.第二页开始之后出现{"error": "Unexpected token/Validation failed"}

分析:

1.第二页开始,有带加密参数,直接重发请求无果,应该带了时间戳加密


先说说什么是jsvmp,jsvmp 只有在调试的时候才能理解代码

jsvmp总体架构

整体架构流程是服务器端通过对JavaScript代码词法分析 -> 语法分析 -> 语法树->生成AST->生成私有指令->生成对应私有解释器,将私有指令加密与私有解释器发送给浏览器,就开始一边解释,一边执行

日志点写法

 _v_[4][___].toString()!='[object MouseEvent]'?  _v_[0]:null.x
v__,"==>",_v_[4][___].toString()!='[object MouseEvent]'?_v_[4][___]:null.x

然后上条件断点 

arguments[0].toString()!='[object MouseEvent]'
_[2][0].e.toString()!='[object MouseEvent]'

首次直接进入 __V(u__, _v_[2], _V_),因为_v_[1]是[]空

3 == __U || 15 == __U || 11 == __U || 13 == __U || 28 == __U || 30 == __U || 41 == __U 底部节点

return __(v__, __U) ,重新安装节点

 

 

可以看到是clientX +"字符" + clientY , 是一个鼠标轨迹 ,按照英文字母可以猜m 是move ,d 是down,u 是 up ,也就是鼠标的移动,按下,弹起的记录,还有上面记录了是AES加密,展开是PKCS7 CBC 。基本知道加密逻辑,鼠标轨迹加密

进入流程27

拿到key 和 iv了 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚硅谷Docker实战教程-笔记11【高级篇,Docker网络】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】…

盛格塾暑期公益课程《学活LINUX》

学习LINUX有很多种方法,本系列课程以动手试验为主,取一个活的LINUX系统(GDK8)作为目标,使用内核调试器(挥码枪)将其中断到调试器,在调试器的帮助下,观察调用过程、执行现…

【1++的Linux】之基础开发工具

👍作者主页:进击的1 🤩 专栏链接:【1的Linux】 文章目录 一,Linux软件包管理管理器二,Linux编辑器--vim2.1 什么是vim2.2 vim的基本操作 三,gcc的使用四,gdb的使用五,项目…

课时7:Trustzone基础知识

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】:Secureboot从入门到精通-[目录] 👈👈👈目录 Trustzone安全扩展双系统架构Trustone架构多方位支持的安全

探索Gradio库中的Textbox模块及其强大功能

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

作用域、垃圾回收机制、闭包、构造函数

作用域 作用域规定了变量能够被访问的 ‘范围’,离开了这个范围变量便不能被访问 分为: 局部作用域 函数作用域块级作用域 let/const 全局作用域 作用域链 嵌套关系的作用域串联起来形成了作用域链 作用:作用域链本质上是底层的变量的查找机制 函…

简写MKL库windows安装以及python如何调用dll库

MKL安装: 最新MKL库下载地址 Donwload: Accelerate Fast Math with Intel oneAPI Math Kernel Library 64位以及32位我直接都安装了 之后配置各种包含目录以及环境变量:网上有很多配置vs的配置教程,这里就不贴了。 (ps: 2023 在vs2019上&a…

nodejs高级编程-核心模块

一、path 1 获取路径中的基础名称 const path require(path)// console.log(__filename) // /Users/liuchongyang/Desktop/分享/网页读取本地文件/node.js// 1 获取路径中的基础名称 /*** 01 返回的就是接收路径当中的最后一部分 * 02 第二个参数表示扩展名,如果…

手把手教-单片机stm32基于w25q128使用文件系统

一、开发测试环境 ①野火stm32f407开发板 ②rtthread操作系统 W25Q128的电路原理图: 二、开发步骤 ①使能spi驱动。 ②使能spi bus/device 驱动,选择sfud驱动。 ③开启dfs功能,选择elm文件系统。 ④保存,重新生成工程。 ⑤下载到…

VueCli 脚手架使用

VueCli 脚手架 到目前为止,已经会了Vue基本使用(去创建vue实例,创建之后再去挂载,挂载之后就去使用各种功能,挂载之后就可以使用其各种功能,data methods compute 以及各个生命周期,常用的属性以…

779. 最长公共字符串后缀

题面: 给出若干个字符串,输出这些字符串的最长公共后缀。 输入格式 由若干组输入组成。 每组输入的第一行是一个整数 NN。 NN 为 00 时表示输入结束,否则后面会继续有 NN 行输入,每行是一个字符串(字符串内不含空白符&…

Redis深入 —— 持久化和事务

前言 最近的学习中,荔枝深入了解了Redis的持久化、Redis事务相关的知识点并整理相应的学习笔记,在这篇文章中荔枝也主要梳理了相应的笔记和基本知识,小伙伴们如果需要的话可以看看哈。 文章目录 前言 一、Redis持久化 1.1 RDB 1.1.1 Redi…

掌握驱动之道:L298N模块多方式驱动电机的优劣分析

L298N模块是一种常用的直流电机驱动模块,它可以通过控制输入端口来实现对电机的速度和方向的控制。L298N模块有3个输入端口:IN1、IN2和EN。 方法一:使用高级定时器输出通道和互补输出通道控制电机 将模块的IN1和IN2分别连接到STM32高级定时器…

Python GUI编程利器:Tkinker中的事件处理(11)

​ 小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日目标 学习下事件处理的相关知识点: 事件处理四要素 事件序列 事件绑定 今天要实现如下效果&#xff1…

Java在Excel中进行数据分析

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前一段时间淘宝出了一个“淘宝人生”的模块,可以看从注册淘宝账号至今的消…

k8s实战3-使用Helm在AKS上发布应用

AKS(Azure Kubenetes Service)是微软云azure上的K8s服务。 主要分为三步 1 连接到AKS 2 用kubectl发布应用 3 用Helm发布应用 1 登录 az login 2 连接dp-npr-dsm-aks(Dsm项目的AKS) az account set --subscription {{subID}} az aks get-credent…

指针的进阶(一)

目录 1. 字符指针 方法一 方法二 字符指针面试题 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 4. 数组传参和指针传参 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5. 函数指针 代码一 代…

Windows用户怎么取消访问共享文件夹的密码

许多Windows系统用户在访问共享文件夹的时候却提示需要输入密码才可访问。这一步给很多人造成了困扰,其实我们可以取消访问共享文件夹密码。请看下面的两个方法。 方法一: 搜索 网络和共享中心。点击 更改高级共享设置。在最底下密码保护的共享那项&…

用C#写汉诺塔问题

假设要将n个圆盘从A->C,中间可以借助B,那么递归思路是这样的,我们先将除最大的一个圆盘外的其它n-1个圆盘从A->B,借助C,然后将最大的一个圆盘搬到C,最后将刚才的n-1个盘子,从B->C借助A&#xff0c…

Qt完成闹钟提示

未启动: 启动: .cpp #include "widget.h" #include "ui_widget.h"void Widget::btn1_slots() {//点击启动开始定时event_timer this->startTimer(1000);btn1->setEnabled(false);btn2->setEnabled(true);edit2->setEnabled(false…