目标网址是这个
aHR0cHM6Ly95YW5ndHUudG9wLw==
个人有个不太好的习惯,看到这种变态的加密,非要搞出来不可,否则心里别扭!
这个网站真实的播放地址,用的是wasm这种加密方式,研究了半天,最后找不到入口函数
就这样放弃?不,我默默的拿出来自己曾经看到过的RPC框架
具体步骤如下:
1、RPC框架下载地址
https://pan.baidu.com/s/19TyURN-wpqGUYBy1P025ew?pwd=6mu3
https://github.com/yint-tech/sekiro-open
下载解压缩后,如果是windows,那就bat直接启动即可,注意需要java环境
2、随便打开一个视频网页,F12,然后添加XHR断点 ,然后去刷新网页,不出意外会被断住
https://api.yangtu.link/v2/jx1
然后在控制台console输入下面的代码
(function() {
'use strict';
// Your code here...
var _mscript=document.createElement("script")
_mscript.src="https://sekiro.iinti.cn/sekiro-doc/assets/sekiro_web_client.js"
document.body.appendChild(_mscript);
function sek_start(){
function guid() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
var client = new SekiroClient("ws://127.0.0.1:5620/business-demo/register?group=test&clientId=" + guid());
client.registerAction("ojbk", async function (request, resolve, reject) {
try {
var e=request['url']
const s = window.encrypt(`${e}|${Math.floor(Date.now() / 1e3)}`);
const n = await Ut(`/v2/jx1`, s, "POST");
if (n.code == 200) {
var sss = window.decrypt(n.url);
}
var jsonResult = {url:sss}
console.log(JSON.stringify(jsonResult));
resolve(JSON.stringify(jsonResult));
} catch (e) {
reject("error: " + e);
}
});
}
setTimeout(sek_start,2000)
})();
然后把断点取消掉,直接点放行,注意网页别关闭
3、直接就拿到真实地址了
import requests
r=requests.Session()
pdata={
'group':'test',
'action':'ojbk',
'url':'https://v.qq.com/x/cover/mzc002003rpvd4j/w0046a3hh1v.html'
}
response=requests.get("http://127.0.0.1:5620/business-demo/invoke",params=pdata)
print(response.text)
4、进阶的玩法
把框架部署到服务器,那个F12别关,就可以一直薅它的API接口了,
上面js脚本也可通过别的方式注入,例如油猴之类
所谓的最强加密播放器也不是没办法破解
|