爬虫 | JS逆向某验滑动加密(二)
时间:2022-07-25
本文章向大家介绍爬虫 | JS逆向某验滑动加密(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
上篇文章给大家分析还原了某验滑动的混淆代码,然后后台很多人在问后面的加密以及整个流程是啥,所以今天索性就把整个加密都弄出来吧!
话不多说,时间宝贵,开干!
回到之前 w 的加密处
可以看到该函数接收了三个参数。调用栈往上追一下
还原后的代码非常清晰,这三个参数就是 c, l, n["$_DAAD"], 仔细看代码
_ = e ? n["lastPoint"]["x"] : t["$_CCAY"]() / a - n["$_DDHB"]
u = e ? n["lastPoint"]["y"] : n["$_DDIm"] - t["$_CCBw"]() / a;
不难猜出,这个 _, u 分别对应我们滑动时候的 x, y 轴的坐标。
你要是不相信,可以拿个尺子量一下(手动狗头)
第三个参数,是滑动的时间。所以关键在第二个参数 l..
控制台分别输出看下是什么东东
后面两个有木有很眼熟啊。就是前面请求返回的 data
那么关键点就剩下一个了,进去瞅瞅
点击进去,就能进入该函数, 打上断点,重发请求
这个 t 就是我们滑动的一个轨迹...,通过这个函数将轨迹数组变成了一个字符串。
将函数扣下来,前面那一坨数组赋值的可以删掉,因为我们已经还原了,看着碍事
函数扣下来后试着运行一下,缺啥补啥。万年不变的原则
继续回到 l 的加密处。接下来是最外层的函数了,同样的方法把加密函数拿下来.
上面完成之后,W 加密函数的三个参数就凑齐了!
继续后面的流程....都没什么难度了,
把那几个加密的函数拿出来就行了。
再把那些什么 AES Base64 都扣出来就完事了!
Js 加密部分基本上就都完成了,剩下的就是根据 Network 中的请求流发请求就好了。
以上就是某验滑动的整个流程了,是不是 so easy !
- ASP.NET AJAX(5)__JavaScript原生类型以及Microsoft AJAX Library什么是Microsoft AJAX LibraryObject原生类型Object.pro
- 使用 Octave 来学习 Machine Learning(一)
- ASP.NET AJAX(4)__客户端访问WebService服务器端释放WebService方法客户端访问WebService客户端访问PageMethod错误处理复杂数据类型使用基础客户端代理的
- 讲真,你该做备份的有效性校验了
- memcache安装方法
- 设计模式专题(五)——工厂方法模式
- ASP.NET AJAX(11)__ScriptManagerUpdatePanel的支持成员功能控制成员脚本控件支持成员ScriptMode和ScriptPathLoadScriptsBeforeU
- SQL Server 2016新特性:动态数据屏蔽(DDM)
- ASP.NET AJAX(12)__浏览器兼容功能判断浏览器的类型和版本Sys.Browser针对DOM元素的兼容操作针对DOM事件的兼容操作
- 设计模式专题(六)——原型模式
- ASP.NET AJAX(13)__利用Microsoft AJAX Library开发客户端组件Sys.Component成员Sys.IDisposable成员Sys.INotifyDisposin
- 设计模式专题(七)——建造者模式
- ASP.NET AJAX(14)__UpdatePanel与服务器端脚本控件脚本控件的作用脚本控件的指责Extender模型脚本控件和Extender模型在PostBack中保持状态在UpdatePa
- ASP.NET AJAX(15)__构建高性能ASP.NET AJAX应用UpdatePanel的性能问题使用UpdatePanel的注意事项脚本加载避免脚本阻塞页面显示AjaxControlTool
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Vulnhub】Tr0ll:2
- 看到一个不错的前端面试题开源项目
- PWN:UnsortedBin Attack
- React、TypeScript、NodeJS 和 MongoDB 搭建 Todo App
- 我想new个对象过七夕,她却抛了异常···
- 在开启了CloudFlare的页面中显示当前节点信息
- MySQL 案例:无主键表引发的同步延迟
- 进入编译器后,一个函数经历了什么?
- Cloudflare中firewall的编写方法
- LeetCode 11盛水最多的容器&12整数转罗马数字
- 刷题一个4ms的程序,代码如何优化到3ms再到2ms?
- 【LeetCode】1. 盛最多水的容器:C#三种解法
- .NET core3.1使用cookie进行身份认证
- User-Agent那些事
- 三分钟Docker-推送本地镜像到仓库