白嫖腾讯视频vip插件代码开发过程详解

admin 2022年10月26日09:10:22评论253 views字数 4146阅读13分49秒阅读模式



网安引领时代,弥天点亮未来   





 

白嫖腾讯视频vip插件代码开发过程详解

0x00故事是这样的



1.讲故事要讲完整:白嫖腾讯vip视频浏览器实用小插件分享


2.简单概括就是替换接口和播放器。


3.具体配置如下,就不细说了,自行查看官方文档即可。

{   "content_scripts": [ {      "js": [ "custom.js" ],      "matches": [ "https://v.qq.com/x/*", "https://www.iqiyi.com/v_*", "https://v.youku.com/v_show/*" ],      "run_at": "document_end"   } ],   "description": "vip视频解析插件,目前支持:腾讯视频、优酷视频、爱奇艺视频  by:奥村燐",   "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp1MyWGlytSRmCg/1uwac+gvY5y+gdKunzleHMWO/rqcdvSS7HrYOnAdm9itJNGFdlnhLMsdVQROj5q7SWI1DaRx6RHpYj97GTa8hPzY4pv+icC2aCyg/DeRx2TAighf+CL/av+OqhAbrePD+H03/Uigx7cfvafaGO8k+C5RIkOH7kGu2kPiO9ylI1jVDzWp7HQEAix8o3I6TD/ZJhKUZ0w6XRog0uh/IHtUwqVe+rXxkka7ri+/MA6qct6XcSkP3bAtfmFlzj+WOWKJKrnXKNxcsSYU3bRJYGWgdz3qgNzQQIZMYDN5zJeVIaMhXC3De4KWjix8HfbJbHnda0d/rBwIDAQAB",   "manifest_version": 2,   "name": "vip视频解析插件",   "permissions": [ "tabs" ],   "version": "1.0.0"}


4.插件代码如下。

//腾讯视频if (window.location.href.indexOf("//v.qq.com/x/") != -1) {  var play_url = window.location.href  setTimeout("tencent_close_adv()",3000)}function tencent_close_adv() {      if(play_url== window.location.href){  document.querySelectorAll(".player__wrapper.container-player")[0].innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  }else if(window.location.href.indexOf(play_url.replace(".html",""))!=-1 && play_url!= window.location.href){        play_url = window.location.href  document.querySelectorAll(".player__wrapper.container-player")[0].innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  }  setInterval("tencent_play_start()", 1000)}function tencent_play_start() {    if (play_url!= window.location.href) {    window.location.reload()  }}//爱奇艺视频if (window.location.href.indexOf("iqiyi.com/v_") != -1) {  var play_url = window.location.href  setTimeout("iqiyi_close_adv()",3000)}function iqiyi_close_adv() {      document.getElementById("flashbox").innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  setInterval("iqiyi_play_start()", 1000)}function iqiyi_play_start() {    if (play_url!= window.location.href) {    window.location.reload()  }}//优酷视频if (window.location.href.indexOf("youku.com/v_show/") != -1) {  var play_url = window.location.href  setTimeout("youku_close_adv()",3000)}function youku_close_adv() {      document.getElementById("player").innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  setInterval("youku_play_start()", 1000)}function youku_play_start() {    if (play_url!= window.location.href) {    window.location.reload()  }}


5.代码的里面的

window.location.href.indexOf("//v.qq.com/x/") != -1

是为了区分当前打开的url在哪个页面,有的人肯定会问了,不是配置了content_scripts可执行了页面吗?为啥还要自己去判断?因为可执行的范围配置的太广了,为了让插件代码精确到对应页面执行,自己也要判断一遍。

白嫖腾讯视频vip插件代码开发过程详解


6.获取当前的url赋值到paly_url,之后再执行setTimeout,这个是必须的。


7.主要是过早的替换视频,Dom节点并没有加载完全,导致会出现视频更换了,音频还是播放原来的,有的人又会问了,不是有window.onload,可以Html文档渲染完成后执行,但是呢,有些Dom节点是后期通过JavaScript渲染的,window.onload是无效的,所以setTimeout("tencent_close_adv()",3000),目的是延迟3秒,等待视频播放的Dom节点全部加载完成。

白嫖腾讯视频vip插件代码开发过程详解


8.后面的if判断主要是为了判断不同的来源页面然后替换播放器,第一次获取url和第二次一样的时候,不做任何处理,直接替换播放器。

 if(play_url== window.location.href){  document.querySelectorAll(".player__wrapper.container-player")[0].innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  }else if(window.location.href.indexOf(play_url.replace(".html",""))!=-1 && play_url!= window.location.href){        play_url = window.location.href  document.querySelectorAll(".player__wrapper.container-player")[0].innerHTML='<iframe src="https://jx.aidouer.net/?url=' + play_url + '" height="100%" width="100%" scrolling="no" allowfullscreen="" frameborder="0"></iframe>'  }


9.如果发现第一次获取url和第二次不一样的时候,play_url重新赋值换成新的,再替换播放器,比如这种视频,会把url重写,但是并不会刷新页面,所以会出现获取的第一次和第二次不一样的情况,但是上一级的id是一样的。

白嫖腾讯视频vip插件代码开发过程详解白嫖腾讯视频vip插件代码开发过程详解

10.最后循环监控url变更并且刷新页面,理由就是,前面刚刚说了,已经更改了原视频dom节点,原本的集数点击视频播放已经失效了,只有音频在播放,腾讯视频重写了url但是不重新加载页面,所以刷新当前页面重新加载插件代码。

setInterval("tencent_play_start()", 1000)}function tencent_play_start() {    if (play_url!= window.location.href) {    window.location.reload()  }}

白嫖腾讯视频vip插件代码开发过程详解


11.欢迎大家关注弥天安全实验室公众号。


白嫖腾讯视频vip插件代码开发过程详解 


知识分享完了

喜欢别忘了关注我们哦~


学海浩茫,

予以风动,
必降弥天之润!


   弥  天

安全实验室

白嫖腾讯视频vip插件代码开发过程详解



原文始发于微信公众号(弥天安全实验室):白嫖腾讯视频vip插件代码开发过程详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月26日09:10:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   白嫖腾讯视频vip插件代码开发过程详解http://cn-sec.com/archives/1371766.html

发表评论

匿名网友 填写信息