阳江市建设局网站,织梦模板库,百度云加速 网站关键词,wordpress 邀请码注册衔接写在前面
再写一个逆向实战#xff0c;后面写点爬虫程序来实现一下。
网站简介与逆向目标
经典的一个视频网站#xff0c;大多数视频网站走的是M3U8协议#xff0c;就是一个分段传输#xff0c;其实这里就有两个分支。 通过传统的m3u8协议#xff0c;我们可以直接进行分…写在前面
再写一个逆向实战后面写点爬虫程序来实现一下。
网站简介与逆向目标
经典的一个视频网站大多数视频网站走的是M3U8协议就是一个分段传输其实这里就有两个分支。 通过传统的m3u8协议我们可以直接进行分段下载爬取视频。 通过逆向找到视频源地址直接访问视频资源
其实这里就是传统爬虫和逆向区别的一些体现。
限制绕过
主页如下
随便点一个视频点击播放f12被debug住了
查看一下堆栈前两个是vm里运行直接跟到play.js里这个地方发出调用拼接了一个’debug‘。
尝试注释掉debug的语句这里是用的f12自带的override拉代码到本地然后再注释掉出现debug的地方
可以进行正常调试了视频也可以播放
逻辑分析
现在查m3u8链接发起位置
显然这里是GET带参数访问
查看响应如下响应了视频的详细信息初始化了整个视频。 那么就是这个特殊的参数被接口解析之后得到了目标资源
现在转换为主要分析两个点一个是请求的特殊参数一个是响应中getVideoInfo逻辑。
搜索一下这个特殊字符怎么来的
它就是主页的一个参数直接var出来的那主页直接取就可以。
现在再看响应中的逻辑。这里其实也给出了提示注释里说了这是视频链接。
url: getVideoInfo(hE/ki2qR70yi9v3WRSl0k9BzEY9RC4r/vAmlV6cSo6YK6LjZXaETksG67sfAmbtPOmhsv9EGQ7wfBhVSWj5icOmB2PGyDCoK94GVGj7tr/2sFl8pIJb/ZFjnv5XfZpfxn/dMWuaxH35gEkiKYk0/m5NtX75D48kQWscgvwt04ZQg2q5WODgeqwpXkcEzr3FUkuw3KUZ4m8kqNlkVlBCzzMIxQtRx9BWQDT1W0zj9MDtPC5xNKMdOeCqjIMx5r5O8k/EprOcBmNhSS/YZkA6F4/MTwXHWBZD2HNacaj63qlcvlPIdkEHGmAW4f7BarIvTojstPy5JCHvZxfEFS/FtnfkvWy6lu8FMgsMZINC/kQt8oRhDDMryU3cQoa6E4bMvVWLRu7iBQaot68oIuTFAIlvwMciUdcWMzQ3XrT7rGEySvQi76KXr2hDCqC4opAHfzGh2Lh3CcPGk5c1FhJsH6gG38SzH/cE2Kw2ssCGFLSBwezhZ3ic2Mt57YHYyEsyKIQ4wcaOzj6EmCeStKj5GhRxU32rexIrn9wLyzKubEvAEy/8gJEffhCXylZlRqI7j3B7hFuFiK0eNJ0d6hwjuILIe9pYlf7dZY),//视频链接查找getVideoInfo函数的逻辑 打断点看看逻辑果然在这个地方停了下来那么这里就是关键点了这个函数还涉及到了v_encryptv_decrypt等函数直接把他们一并取下来
核心加密
把代码取下来有提示到是js加密的v6版本 jsjiami.com本身就是一个网站详情查看如下 https://www.jsjiami.com/
用AST脚本进行解密
看起来正常了不少现在替换回网站进行测试 仍然可以进行正常播放 下断点看看链接在哪这里看到第一层解密就得到了链接
逆向结果
把这段代码单独扣下来就得到了核心算法。
搜索一下缺少的参数然后补上去脚本如下
//const CryptoJS require(crypto-js);//var bt_token ; //you own tokenvar _token_key CryptoJS[enc][Utf8][parse](57A891D97E332A9D);
var _token_iv CryptoJS[enc][Utf8][parse](bt_token);function v_decrypt(_0x2f61c9, _0x14dd13, _0x2bf4a2) {return CryptoJS[AES][decrypt](_0x2f61c9, _0x14dd13, {iv: _0x2bf4a2})[toString](CryptoJS[enc][Utf8]);}function getVideoInfo(_0x285840) {return v_decrypt(_0x285840, _token_key, _token_iv);}var url //videoinfo urlres getVideoInfo(url);
console.log(res);得到了mp4资源可以直接播放和转储了
了解更多
关于该文章的 ast反混淆的详解真实脚本编写