经过"逆向JS分析实战某违规网站2"的操作后,目标资源网站已经可以正常调试。
那对于视频,当然是要拿到视频下载地址,视频下载地址含有的高频关键词是m3u8,当然”.ts“也是。但是在网页源代码中通过这两个关键词是无法搜索到想要的链接地址。那就是这个网址的下载地址不是静态链接地址,而是是通过动态生成的,也就是通过网页js来获取到的。
当然最后这个网址生成的链接地址是否真的含有这两个关键词呢?看回浏览器抓到的数据
从图中可以看出这个网站最终用的视频链接是含有关键词 ”m3u8“ 的,那就可以尝试搜索下m3u8,看看是哪里生成的下载地址。
在搜索栏输入m3u8后敲击Enter键,可以看到结果如下
得到了三个结果,但最后一个不是js文件,所以第三个结果明显不是我们想要的。那dplayer.min.js和hls.js 这两个js文件究竟是哪个呢?
先看 dplayer.min.js,我们定位到这个js文件的源码,找到m3u8出现的地方
先静态分析dplayer.min.js代码:
1、使用js来构建视频链接请求,那请求的视频类型必定是指定类型的,且构建的格式应该和最终得到的链接地址的相同,而从上图来看,明显对不上;
2、在上面dplayer.min.js的源码搜索结果中可看到m3u8只出现1次,且m3u8所在的代码行,涉及了其他视频类型(flv、mpegurl),结合js的名称,可以推断包含m3u8的这行js代码的作用是用于播放时使用的。
因此从静态分析dplayer.min.js的结果可得,dplayer.min.js不是我们所要找的js文件。
那再静态分析hls.js 代码:
}) && (l.logger.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),
通过截取的源代码块就可看出是在检测mp4的相关属性时,检出异常而写的一个告警提示语句,因此这个hls.js 也不是我们所要找的js文件。
到这里,我们获得的信息是,通过m3u8是无法搜索到目标js的。那就尝试下搜索”.ts“,看看能否有转机。搜索结果如下:
显然四个结果都不是js文件,所以通过搜索”.ts“,同样是无法找到我们所要找的js文件。
分析到这,可以看出这个网站的与众不同。似乎在寻找视频链接地址上,走到了死胡同。
既然如此,那就从视频链接的关键词来搜索,从上文的链接地址可得到以下关键词:“usersfiles”、“whatfugui”、“data”、“play.m3u8?”、“KS”、“KE”。(本文第一张图片)
先搜索关键词“usersfiles”
从上图的搜索结果来看,同时搜索到了“usersfiles”、“whatfugui”,而且网址的格式与抓包得到的视频链接格式相似度极高。
再往下看
从图中不难看出以下信息:
1、_0x43f960的值是含有关键词的网址
2、经过AES加密后的_0x4ae0a3经过一番操作得到_0x2ef354
3、_0xeb9911的组成成分中含有_0x43f960和_0x2ef354
4、'video’的 ‘url’ 是 _0xeb9911
请求视频链接网址的参数一般都是经过加密处理,由此可见,vod.js就是我们要找的js。
总结:
常规关键词只能作为尝试使用,对于有所防备的网站,通常会失效,要学会从其他方面入手(如请求链接),冷静分析,要谨记“有结果就会有过程,有过程即有迹可循,不会存在无中生有”。
下一章“逆向JS分析实战某违规网站3–还原混淆2”将继续讲解后续内容。