AI 文章摘要
进入网站,播放视频,F12打开查看网络请求,然后发现了右边红色框内的内容,也就是说,当我点击视频播放的时候,请求这个api.php然后得到那么一串东西,,但是呢,如果想获取视频url,会发现url一栏是字符串而不是正常url形式,所以证明这个url可能是视频的一个身份号,通过这个身份号能去拿到视频真实的url,然后再进行播放

再看一下这个传的参数,传了一个vid去请求这个api.php,此时不知道这个vid是不是加密的,所以可以先看发起程序有哪些然后查看一下这个vid的生成位置

很明显有一个requestApi,点进去,发现还真是vid的生成位置,但是发现代码长得有点奇怪,那是因为此段js代码是经过加密混淆的,用的是目前较新的jsjiami.com.v7这个网站的加密算法,把js代码高度混淆加密,使得代码比较难读懂


之后在此处打一个断点,由于代码高度混淆加密,所以只能一步步看,发现关键东西,打个断点,进入函数再推敲具体的走向
首先一发出请求代码来到post这儿,然后控制台输出查看一下在这做了什么操作,具体就不说了,大致说一下就是在请求的时候,这个vid就有了,然后仔细看的话,也会发现,这个vid就是这个源代码index.php后面所跟的那个vid,也是这个接口请求时所携带的vid,所以可推敲,这个vid是请求时服务器给的,然后呢,把这个vid截取下来再去请求这个api.php得到数据,因为这有一个getQueryString函数,打印它发现,它就是vid,然后打印_0x3fda1e[‘BzvtC’]发现它就是api.php




再进入这个getQueryString函数,乍一看看不懂,但是可以慢慢调试

发现最后输出的就是服务器给的那个vid,所以上面的推测是对的,这个函数就是把index.php后面跟的vid给截取下来然后当参数去请求index.php

如何请求的知道了,下面到如何得到视频真实链接,往下会发现有一个sign函数

打断点同时打印一下各个参数内容,能发现是把请求得到的那个data(就是那个post请求得到的东西),中的url那一串字符换传到sign里面去


接着进入sign函数看看什么情况,乍一看也看不懂,但是我们打断点也研究研究,发现确实是吧data里面的url传入了sign,其间经历了一个Base64编码,和一个customStrDecode解码


进入customStrDecode函数,发现又经过了一个Base64编码同时加了一个key,key是把test传入MD5函数生成的

进入MD5函数,发现返回的就是key值,然后因为不知道是不是固定值,所以多次测了一下,key是一个固定值


因代码混淆加密过多,所以由于不太能懂具体到底做了什么操作,所以只能不断调试打印一下customStrDecode函数的输出值是什么,发现是一个字符串,然后呢在上面sign函数代码中,我们也看到,传入的那个url字符串经过Base64编码和customStrDecode解码后就没有了,可以打印一下它的最终结果发现是一个m3u8文件的url,由此得到它的真实音频url文件,根据这个m3u8的url,就可以通过一些平台转化为MP4格式并下载


总的来说就是,逻辑就是传入请求得到的那个data里的经过加密的url字符串到sign里面,经过base64编码,然后customStrDecode解码最后得到真实url,逻辑是这么个逻辑,就可以用代码实现了

