【Python 逆向滑块】(实战五)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信
逆向日期:2024.08.03
使用工具:Python,Node.js
本章知识:滑块距离识别,滑块轨迹生成,验证滑块并获取【validate】参数
文章难度:中等(没耐心的请离开)
文章全程已做去敏处理!!! 【需要做的可联系我】
AES解密处理(直接解密即可)(crypto-js.js 标准算法):在线AES加解密工具
注意 注意 注意!!!
为了保护本作者可以持续的更新知识,此次逆向出的网站源码代码不分享,有需要可以直接找我。但作者所写出的代码(非网页源代码)会在网站最低部公示。
看此文章前请先看预热阶段的文章!!!
【Python 逆向网易易盾滑块】(实战一)预热阶段
【Python 逆向网易易盾滑块】(实战二)逆向【fp】参数
【Python 逆向网易易盾滑块】(实战三)逆向【cb】参数
【Python 逆向网易易盾滑块】(实战四)逆向【data】参数里的【d】【p】【f】【ext】参数
本篇文章讲一下【关于网易易盾滑块的小细节】和【用python如何调用js文件生成并返回数据】和成功验证滑块验证并获取【validate】值
1、关于网易易盾滑块的一些细节
仔细看,在开头我拖动箭头的时候,拼图的运动似乎有点慢【箭头的拖动和拼图是不同步的】
仔细看,在结尾我拖动箭头的时候,拼图的运动似乎有点慢【箭头的拖动和拼图是不同步的】
2、你看完视频后应该明白一些东西了吧,明白了很好,现在开始OCR识别滑块缺口的距离,识别出来的距离用于网页的这个位置【this[G4(0x8bd)][G4(0x554)][G4(0x753)]】,前面的几篇文章看过后,应该就会明白我所说的是什么地方了
3、通过OCR识别出来的距离去计算箭头的拖动距离,在文章的上方,有两个短视频,说的就是箭头拖动和小拼图的滑动是不同步的,因此我们要计算一下箭头的拖动距离,也就是真实距离。
4、真实距离就是拖动箭头的距离,有了箭头的拖动距离就可以去计算滑动轨迹了
5、在继续操作前,不知道大家有没有用过【execjs】模块,就是用来调用js文件运行的一个python模块,在这里想问大家一个问题,有没有遇到文件大的复杂的js文件,用这个模块调用的时候就会出现错误,或者是能调用成功,但返回的数据量过大时也会出现错误。今天就来帮大家来解决这个棘手的问题,而且还特别简单。
python的argv有用过吧,用命令行传参必不可少的。当然,js里也有argv功能,不懂的可以去尝试一下,我现在直接展示一下
6、既然我们有了【OCR识别距离】【滑块轨迹】【token】,那我们就可以来调用之前逆向的js文件,去生成【data】参数了
7、然后我们把代码略微优化一下,做成自动传参,来看视频
8、到这里逆向滑块就已经结束了,你已经成功的学会了如何逆向网易易盾的滑块。从逆向滑块,分析滑块,识别滑块,生成轨迹,python调用js文件,在到一体自动绕过滑块,看起来简简单单,实则有点小难度,需要有一定的耐心和思路。
下一篇文章将会讲一下如何逆向最后一个参数,并实现自动发送短信
【附上代码】由于网页原代码受保护,在次不能进行公开,还请谅解。
【ocr识别滑块距离.py】滑块缺口的距离
DHc64B4ttpC3DRii9hqi5Gktas5bwtlji2+orGnyBegjh6Ntr9qenFtS66NIgjO06inYyFG71seZY3oEFyEZ7Q7C5TitNsWPv/OXwz40bMmTgsIQR15cNuv+czV/TyWHNhqxrGXtURa3Y4a5jSF/1Ppfl+c4LBaxSqRquYocuwlWOkyDI9C9ckb+pq0CtXu8j+62zlU7FGpfaHVgKdVBHus4T3CZcCVYGoy2lwkQKm0ApwX+nDcJyEwzzhfTfuM1CoLJWV3uTNJxDdhp667zbZi5bW8qXKjQdOJIoE6u6OrRoLTUa02Q++5oP6XO9DC/2oCY+l1qnsK47QFhB/IasVBNJsWUO2VTB5Ku9a7DLAR6AwFxhjbAnrDaAL9skqtQgxLQwTmZMiq/0aQwMKzuZ8kT+xGo0mGIGKifvclTswV3BgdWcq/2U/LxplNgHwAIUIWCievrkFyDaqX0SKy1czqRZLn0pvmhUgmnZBV9ZOk7e50Ibdso04lY3uHKGNLp
【真实距离.py】要拖动箭头的距离
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
【滑动轨迹生成.py】生成滑动的轨迹
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
【绕过滑块总代码.py】
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
相关文章:
【Python 逆向滑块】(实战五)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信
逆向日期:2024.08.03 使用工具:Python,Node.js 本章知识:滑块距离识别,滑块轨迹生成,验证滑块并获取【validate】参数 文章难度:中等(没耐心的请离开) 文章全程已做去敏处…...
微服务架构设计的最佳实践
在当今快速变化的软件开发环境中,微服务架构因其灵活性、可扩展性和可维护性而逐渐成为大型分布式系统的首选架构模式。然而,成功实施微服务架构并非易事,它要求开发团队遵循一系列最佳实践来确保系统的可靠性、效率和可管理性。本文将探讨微…...
样式与特效(3)——实现一个测算页面
这次我们使用前端实现一个简单的游戏页面,理论上可以增加很多玩法,,但是这里为了加深前端的样式和JS点击事件,用该案例做练习。 首先需要掌握手机端的自适应,我们是只做手机端玩家页面 。需要允许自适应手机端页面, 用…...
芯片制造过程4光刻机
以下内容均取自哔哩哔哩up主谈三圈 链接: 芯片制造详解04:光刻技术与基本流程|国产之路不容易 1.光刻原理 通过光掩膜、光刻机、光刻胶进行光刻 光掩膜是芯片的蓝图,是一张刻有集成电路板图的玻璃遮光板光刻机就像一台纳米级的打印机&#…...
Nexus3 Repository代理pypi设置与应用
目录 1. 创建Blob库并指定路径 2. 创建pypi阿里镜像源 3. 创建pypi腾讯镜像源 4. 创建一个pypi组管理 5. 配置pip 6. 下载测试 扩展:配置好后无法下载解决思路。 Nexus 存储库中的 Blob 存储是指一种用于存储大量非结构化数据的技术。在 Nexus 存储库的上下文…...
PMP–知识卡片--燃起图
燃起图用两条曲线分别绘制随时间的推移、完成的工作量和总工作量的变化情况。它不仅能清晰地展示项目进度,还是对团队成员的一种激励形式。 使用燃起图可以更好地了解进度、范围变更和预期完成时间,它为所有相关方提供了更清晰的进度状态。 燃起图根据工…...
63 epoll服务器 (ET模式)
基于LT模式修改,并加入前面的应用层计算器,实现稍完整的服务器功能 1.修改tcp_socket.hpp,新增非阻塞读和非阻塞写接口 2.对于accept返回的new_sock加上EPOLLET这样的选项 注意:此代码暂时未考虑listen_sock ET的情况,…...
AI Agent
一,什么是AI Agent? AI Agent(人工智能代理)是一种能够自主执行任务和决策的智能系统。它通常具备感知环境、处理信息和采取行动的能力,能够模拟人类的思维和行为方式。 它可以是软件程序,也可以是嵌入式…...
select
select函数简介: select是Linux中常用的多路复用IO机制,它允许程序同时监控多个文件描述符(可以是套接字socket,也可以是普通文件)的读、写和异常事件。 #include <sys/select.h> #include <sys/time.h> …...
按照指定格式打印pprint()
【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 按照指定格式打印 pprint() [太阳]选择题 根据给定的Python代码,哪个选项是正确的? from pprint import pprint data { name: A, age: 30, hobbies:…...
Study--Oracle-07-ASM常用维护操作(五)
一、ASM创建新的磁盘组 1、查看系统中可用的磁盘 set lines 150; col name for a35; col path for a35; select group_number,path, state, name, total_mb, free_mb from v$asm_disk; 2、磁盘组操作 创建磁盘组 create DISKGROUP DATADGV2 EXTERNAL REDUNDANCY DISK /dev…...
[Git][分支管理][上]详细讲解
目录 1.理解分支2.创建分支3.切换分支4.合并分支5.删除分支 1.理解分支 感性理解:分支可以理解为平行宇宙,但是在用户需要的时候,可以将两个平行宇宙合并,此时两个平行宇宙的效果将会"叠加"理性理解:每次提…...
C语言指针(1)
目录 一、内存和地址 1、生活中的例子 2、内存的关系 二、指针变量和地址 1、&符号,%p占位符 2、一个简单的指针代码。 3、理解指针 4、解引用操作符 5、指针变量的大小。 三、指针变量类型的意义 1、指针解引用的作用 2、指针指针 3、指针-指针 4…...
C语言中的指针与数组
C语言中的指针与数组是编程中非常基础且强大的概念,它们之间有着紧密的联系和相互转换的可能性。深入理解这两个概念对于编写高效、可维护的C程序至关重要。以下将详细探讨C语言中的指针与数组,包括它们的基本概念、关系、应用以及一些高级话题。 一、指…...
CentOS7.9升级OpenSSL1.1.1w
下载 https://www.openssl.org/source/old/1.1.1/index.html 安装依赖 yum install gcc libffi-devel zlib* openssl-devel libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc perl make 解压 tar -zxvf openss…...
环境搭建:如何安装和使用 MySQL Connector/J——与 MySQL Community Server 的关系
环境搭建:如何安装和使用 MySQL Connector/J—— MySQL Community Server 的关系 在 Java 项目中,与 MySQL 数据库的交互需要使用 MySQL Connector/J 驱动。本文将介绍 MySQL Connector/J 的作用、安装方法以及与 MySQL Community Server 的关系…...
SAP 财务管理系统 —— 企业财务智能化的领航者
在当今数字化时代,企业财务管理的智能化已成为推动企业持续增长的关键因素。SAP 财务管理系统通过智能化技术,帮助财务部门提高收入、控制成本并降低财务风险,释放财务数字化转型的价值。财务 ERP 作为 SAP 的核心组成部分,将帮助…...
python通过pyautogui自动给微信聊天窗口发消息
使用py脚本自动给聊天窗口发消息 1.突然的自我2.编写脚本玩一把i.先获取窗口位置ii.模拟聊天iii.疗效不错呢 1.突然的自我 突然想到pyautogui可以做那么事情, 那么是不是可以模拟聊天呢,如果结合现在的大模型chatGPT一边问然后得到结果一边自动和别人聊…...
QML中的Date将时间戳和指定格式时间互转
在QML中,可以通过使用JavaScript来处理日期和时间的转换,其中包括将时间戳转换为指定格式的时间字符串,以及将时间字符串解析为时间戳的操作。 将时间戳转换为指定格式的时间字符串 在QML中,可以通过JavaScript的Date对象来处理…...
C++ new/delete 重载
operator new/delete 重载 语法格式 void *operator new(size_t); void operator delete(void *); void *operator new[](size_t); void operator delete[](void *);#include <iostream> using namespace std;class A { public:// 构造函数A(){// _x1;// _y2;// 在n…...
读取连接中文件流和页面展示base64编码的文件
读取连接中文件流和页面展示base64编码的文件 背景需求从接口处获取base64编码的字节流依赖java 代码 前端展示pdf图片 背景需求 我需要展示一个pdf 文件在页面上,但是我一直没办法将 pdf的下载链接用预览方式展示出来,于是打算讨个巧,直接给…...
【大模型从入门到精通4】openAI API 分类
这里写目录标题 分类理解 SYSTEM 和 USER 在 AI 对话中的角色System MessageUser Message工作原理示例分类示例更多分类示例理论问题理论 分类 理解 SYSTEM 和 USER 在 AI 对话中的角色 在分类任务中,通常需要向模型提供一个需要将其分类到预定义类别中的文本场景…...
仓颉 -- 标识符 , 变量以及数据类型详解
仓颉 – 标识符 , 变量以及数据类型 一. 标识符 1. 普通标识符 由数字 , 字母 , 下划线构成 – cangjie , cangjie_2024由英文字母开头,后接零至多个英文字母、数字或下划线。由一至多个下划线开头,后接一个英文字母,最后可接零至多个英文…...
CC++:贪吃蛇小游戏教程
❀创作不易,关注作者不迷路❀😀😀 目录 😀贪吃蛇简介 😃贪吃蛇的实现 🐍生成地图 🐍生成蛇模块 ❀定义蛇的结构体 ❀初始化蛇的相关信息 ❀初始化食物的相关信息 🐍光标定位和…...
C#中投影运算的深入解析与实例应用
文章目录 1、投影运算的基本语法2、投影运算的高级用法3、投影运算在向量空间中的运用4、投影运算在数据库和XML中的实际应用5、投影运算能用于哪些实际场景?6、结论 在C#编程中,投影运算是一种常用的数据操作技术,它可以将一个数据集合转换成…...
HTML+CSS練習---空隙產生記錄
1.第一層和第二層之間的間隙:以為導航欄超過高度朝下擠下來了 2.第2層兩個div中的空隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>font-face {f…...
【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)
Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构、LeetCode专栏 📚本系…...
Linux系统窗口水印难点分析
给应用程序加水印是保护数据的一种方式,window上可以通过给进程通过注入的方法给进程的窗口创建一个同大小的副窗口,在副窗口上绘制水印内容,同时设置副窗口透明同时透传事件,这样就可以达到在源窗口上显示水印的效果且不影响程序…...
LabVIEW与CANopen实现自动化生产线的设备控制与数据采集
在某工厂的自动化生产线上,多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC,它们共同负责监测和控制生产过程中的关键参数,如温度、压力、速度等。为了实现对整个生产线的集中监控和管理,工厂决定使用La…...
吃惊!这个Windows双系统方法逆天了|UEFI篇
前言 最近小白在折腾别的系统教程,偶然间发现居然有一个很nice的Windows双系统教程。于是于是,果断尝试了一下,发现真的很可行! 这个双系统的办法并不需要使用到WinPE系统,因此并不需要使用到U盘,只需要在…...
杭州品牌策划公司/优化百度搜索
语音和词汇这个话题,原本不值得拿出来大谈特谈,只是近期市场上出现了很多营销噱头,诸如“在原汁原味的语言环境中进步”、“不用背单词轻松学X语“的出现,才让这个话题特别值得关注。这一套营销背后的逻辑很简单:把学习…...
注册网站域名要钱吗/网站联盟营销
市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起。同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品。 01kylinTOP测试与监控平台(商用…...
网站建设后的效果评估/个人怎么做互联网推广平台
参考视频教程: **Android热修复与插件化实践之路 ** Android热修复 正常项目开发流程: 版本1.0上线-》 用户安装-》 发现bug-》 紧急修复-》 重新发布版本1.1上线 热修复开发流程: 版本1.0上线–》用户安装-》发现bug -》紧急修复 -》打出补丁-》…...
网站建设 成功案例/seo咨询邵阳
Python处理图片九宫格,炫酷朋友圈前言在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片被切成九张照片所带来的视觉盛宴是不一样的!现在许多 P 图工具里面自带了这种功能,而微信小程…...
网站开发 php 书籍 推荐/建站网站
\(\color{#0066ff}{ 题目描述 }\) 小D 被邀请到实验室,做一个跟图片质量评价相关的主观实验。实验用到的图片集一共有 \(N\) 张图片,编号为 \(1\) 到\(N\)。实验分若干轮进行,在每轮实验中,小 D会被要求观看某两张随机选取的图片&…...
wordpress和织梦哪个好/网店
左右括号配对 题目: 每一个元素可以生成三种:在左添加、在右添加、在外面包起来。 代码: package Recursion;import java.util.HashSet; import java.util.Set;public class 左右括号配对 {//递归public static Set<String> kuoh…...