Javascript 有人能帮我破译被审查视频的YouTube签名吗

Javascript 有人能帮我破译被审查视频的YouTube签名吗,javascript,encryption,youtube,Javascript,Encryption,Youtube,对于审查过的视频,如vevo,YouTube使用签名密码对其签名进行解码。你可以参考这个链接来理解我说的话 请打开并阅读以上链接以理解问题 但最近youtube改变了js文件,改变了密码链接- 找到e.sig后,我看到了nr函数 nr=function(a){ a=a.split(""); mr.qv(a,69);mr.qv(a,26);mr.NC(a,38);mr.qv(a,8);mr.qv(a,22);mr.y9(a,1); return a.join("") Java脚本

对于审查过的视频,如vevo,YouTube使用签名密码对其签名进行解码。你可以参考这个链接来理解我说的话

请打开并阅读以上链接以理解问题

但最近youtube改变了js文件,改变了密码链接-

找到e.sig后,我看到了nr函数

nr=function(a){
  a=a.split("");
  mr.qv(a,69);mr.qv(a,26);mr.NC(a,38);mr.qv(a,8);mr.qv(a,22);mr.y9(a,1);
  return a.join("")
Java脚本不是我的母语,所以我不能理解这个函数

然而,我可以提供一个加密和解密的信号从一个在线youtube视频下载后seing下载链接

加密签名

-3E2D315C8113141CBBA08986DC4898B7190B7278.6349B6F283A287624084AF146535A2FEF0596458

解密签名

097F54F65B82E9E1C04DB6235C18C4DF52176B.0341321C5E755A7B7151ADABEDCBC1F5B0592A47

那么,函数

nr=function(a){
    a=a.split("");
    mr.qv(a,69);mr.qv(a,26);mr.NC(a,38);mr.qv(a,8);mr.qv(a,22);mr.y9(a,1);
    return a.join("")
}
只需将a分解为一个字符数组,就可以实现以下功能:

 var mr = {
     qv: function(a, b) {
         var c = a[0];
         a[0] = a[b % a.length];
         a[b] = c
     },
     y9: function(a, b) {
         a.splice(0, b)
     },
     NC: function(a) {
         a.reverse()
     }
 };
  • qv:它接收
    a
    数组,将其第一个值存储在
    c
    var上,然后将第一个值设置为
    b
    值和长度的模,然后将
    a
    数组上的
    b
    值设置为
    c
  • y9:它获取
    a
    数组并从0开始删除
    b
    元素。。。基本上删除函数中数组的第一个元素
  • NC:只需还原
    a
    数组即可
我认为您需要跟踪对字符串所做的更改
qv
。。。试试看你是否可以在Firefox的调试器上设置一个断点(我不会在这个问题上使用Chrome…:D),看看它是否最终得到了你的未加密密钥,或者里面是否有更多的代码…

因此,函数

nr=function(a){
    a=a.split("");
    mr.qv(a,69);mr.qv(a,26);mr.NC(a,38);mr.qv(a,8);mr.qv(a,22);mr.y9(a,1);
    return a.join("")
}
只需将a分解为一个字符数组,就可以实现以下功能:

 var mr = {
     qv: function(a, b) {
         var c = a[0];
         a[0] = a[b % a.length];
         a[b] = c
     },
     y9: function(a, b) {
         a.splice(0, b)
     },
     NC: function(a) {
         a.reverse()
     }
 };
  • qv:它接收
    a
    数组,将其第一个值存储在
    c
    var上,然后将第一个值设置为
    b
    值和长度的模,然后将
    a
    数组上的
    b
    值设置为
    c
  • y9:它获取
    a
    数组并从0开始删除
    b
    元素。。。基本上删除函数中数组的第一个元素
  • NC:只需还原
    a
    数组即可

我认为您需要跟踪对字符串所做的更改
qv
。。。试试看你是否可以在Firefox的调试器上设置一个断点(我不会在这个问题上使用Chrome…:D),看看它是否最终得到了你的未加密密钥,或者里面是否有更多的代码…

我想你可以从查找更多关于mr和这两个字母函数的信息开始。。。它们似乎都接收到数组和int参数,并且必须对其进行处理。尝试在缩小的源中查找这些函数。。。在那里你可能会发现一些需要做什么的线索,假设你想在一个定制的客户机上复制它。。。编辑:如果需要帮助,请在此处发布函数…;)@joaoBeno js文件拥有所有功能我想你可以从找到更多关于mr和这两个字母的功能开始。。。它们似乎都接收到数组和int参数,并且必须对其进行处理。尝试在缩小的源中查找这些函数。。。在那里你可能会发现一些需要做什么的线索,假设你想在一个定制的客户机上复制它。。。编辑:如果需要帮助,请在此处发布函数…;)@joaoBeno js文件具有所有功能