接上节课内容
JS逆向 -- 某视频vid值的加密分析
一、val值的分析
1、F12开发者工具抓包,刷新页面,全局搜索val:,挨个下断,最终确定e-t就是关键点
2、通过上下文,猜测他们一个刷新页面的时间戳,一个是点击按钮时的时间戳,然后相减。通过刷新页面,停留不同的秒数,然后点击播放按钮,正好证实这一点,所以该val值可以给个随机数,给个固定值也可以。
三、pid值的分析
1、通过全局搜索pid:,发现此处是关键点,在附近下断
2、断下来后发现,pid值来自于e,e来自于s.a.getPlayerId()函数
const {flowid: e=s.a.getPlayerId(), vid: i, pid: r} = t; this.isLive ? this.updateParam({ playno: e, sid: i, pid: r }) : this.updateParam({ pid: e
3、跟进s.a.getPlayerId()函数继续分析,关键代码为
createGUID: ()=>`${(new Date).getTime().toString(36)}_${Math.random().toString(36).replace(/^0./, "")}`
4、转换为js可以执行的代码
console.log((new Date).getTime().toString(36)+'_'+Math.random().toString(36).replace(/^0./, "")) 运行结果: lhrkkrc2_r4rg1pjmyjxl56rrwqe8w7b9