今日某条js逆向_signature,快速定位加密位置

声明

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

某条_signature js逆向,下面是逆向流程

首先打开浏览器设置,清除浏览器缓存数据,或者使用无痕模式,打开调试从新请求某条,抓一次完整数据包
在这里插入图片描述
下滑触发流加载数据接口(下滑两次对比发送请求参数)

图1:第一次加载
在这里插入图片描述
图2:第二次加载

在这里插入图片描述
发现变化的只有下面两个参数:max_behot_time,_signature

# max_behot_time(上次流加载返回最后一条数据里behot_time时间)

在这里插入图片描述

_signature 签名分析

直接搜索参数关键词
在这里插入图片描述

找到加密位置打上断点调试,下拉加载就能发现参数经过S方法就得到了加密后的_signature,S方法有两个参数n和e,n是你请求的rul接口地址,e是一个对象
在这里插入图片描述
接下来我们进入 S方法打上断点,下拉从新请求,断到S方法时使用单步调试进入函数内查看执行逻辑
在这里插入图片描述

这一条就是获得签名位置是一条js的三木运算,如果 (null === (n = window.byted_acrawler) || void 0 === n 为true则执行 void 0否则执行null === (r = n.sign) || void 0 === r ? void 0 : r.call(n, i)) || “”可以在浏览器控制台打印测试一下

null === (r = n.sign) || void 0 === r ? void 0 : r.call(n, i)) || ""这里又是一个3目运行
需要注意执行三木运算过程中进行了参数赋值第一个三目运算window.byted_acrawler(window身上绑定一个属性byted_acrawler) 赋值给了n,后面一个运算n.sign(sign是byted_acrawler属性里面的方法做签名使用)赋值给了r最好r.call()方法调用执行

var o = (null === (n = window.byted_acrawler) || void 0 === n ? void 0 : null === (r = n.sign) || void 0 === r ? void 0 : r.call(n, i)) || "";

接下来进入n.sign对应的e方法就是加密函数
在这里插入图片描述
加密函数位置
在这里插入图片描述
接下来我们不去扣具体的js加密代码,直接整个复制出去,却啥补啥,反正_signature是在这个文件里加密的,如果具体去扣js流程容易把自己搞乱,需要补的环境也非常多。

在这里插入图片描述
完整项目地址:https://github.com/vleij/Spider_reverse

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值