目录
-
-
-
- 一、流程简单了解
- 二、补环境的方式
- 三、扣逻辑的方式
-
-
一、流程简单了解
- 案例网址:点击查看
- 请求头参数
x-zse-96
文章图片
- 这个案例网上太多太多太多太多了,那我就跟着前辈的20篇文章思路,补环境试一试,此次补环境(node下
npm install jsdom
)需要的代码如下const jsdom = require("jsdom"); const { JSDOM } = jsdom; const dom = new JSDOM(`Hello world
`); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest;
- 定位入口:采用搜索关键词
x-zse-96
定位,如图11703行的signature打上断点,x-zse-96=“2.0_” +signature,如图只需要研究u()函数,而u()函数就是__g._encrypt(encodeURIComponent(e))
这个结果
文章图片
- 所以研究
__g._encrypt
函数,__g._encrypt函数又是r()函数,所以扣r()函数所在的范围部分,__g._encrypt
函数传入md5值即可解出我们要的signature
文章图片
- r()函数如下,这里直接将当前js文件所有的js代码先复制下来,然后把所有函数先折叠起来
文章图片
- 然后搜索
var A = "2.0"
去定位函数体,扣出函数体
文章图片
- 接着头部加上相关环境jsdom,尾部加上输出,测试运行即可生成signatrue
文章图片
- 至此补环境结束,测试结果正常,这个案例单看补环境分分钟解决问题(前辈文章太多约20篇,所以就比较容易),不过也可以看看扣算法的方式
文章图片
- 定位入口:采用搜索关键词
x-zse-96
定位,如图11703行的signature打上断点,x-zse-96=“2.0_” +signature
文章图片
- 清除缓存,刷新定位,js中
signature: u()(f()(s))
分析见图中,我们要研究signature就是研究这个u()函数即可
文章图片
- u()函数如图,经过深层的调试,我们会到如图G.prototype.v 的位置,在37026行打上日志断点
"索引:", this.C, " 值:", JSON.stringify(this.r)
,然后清除缓存刷新输出大概有1.7k的日志,从日志里面推算算法逻辑
文章图片
文章图片
- signature是由11部分组成,且4个为一组
文章图片
- 【SpiderCrawl|js逆向案例-某知x-zse-96补环境与扣逻辑】看这篇文章,以及这篇文章,会了解如何逆推算法,最终算法就30多行
文章图片
文章图片
推荐阅读
- SpiderCrawl|js逆向案例-jsvmp纯扣逻辑
- SpiderCrawl|JS逆向案例-web某音弹幕protobuf逆向解析
- SpiderCrawl|JS逆向-Protobuf逆向解析
- CSS|一行代码渲染头像
- 性能|SQL调优心得(二)(常见性能问题的优化)
- javascript|SegmentFault 创始人祁宁对话 C# 之父 Anders Hejlsberg
- MyGameLife|【MyGameLife】我的游戏职业生涯是从TS(TypeScript)开始的(2|CSDN创作打卡)
- javascript|Delphi、C#之父Anders Hejlsberg首次访华 推广TypeScript
- Vue|Vue组件之间的数据共享