1. 前言
现在我们在网页端看的视频,其前端实现原理就小编目前知道的而言,总的有两点:其一,直接就是一个mp4(或其他类似的)视频链接,如果我们能得到这个视频链接,直接用这个链接就能下载到这个视频;其二,和第一点差不多吧!但是直接用链接下载,获取不到视频文件,而是一个其他类型的文件(比如m3u8文件),虽然不能直接下载到视频,但是通过进一步处理,最后还是能得到视频文件的。最近,看到了一个视频平台,觉得这个平台挺好的,没有广告,想得到在这个平台的视频文件,但是其原理属于第二种情况,且网站进行相对复杂的加密处理,怎样才能得到这个平台上的视频的m3u8文件呢?
目标网址:aHR0cHM6Ly92LmRvdXl1LmNvbS9zaG93L244R3pNWG1Pam9KVzZxeVA=
1.分析数据
分析网址发现某鱼的视频下载的参数data有加密参数。看起来有点像MD5加密。
2. 了解sign这个参数的加密原理(js逆向)
我们点击到启动器,如下:
可以看到这个启动器下面有一大堆js文件的链接,我们点到图上的第6个链接(这里直接省略点击上面5个链接的步骤了,小编是一个个都点击过的,可以并没有发现东西,知道点击到第6个链接后),发现如下:
然后再这里断点调试,可以看到sign结果已经出来了。
我们现在找t这个是哪里来的。发现t是上面:t = "".concat(p, "&vid=").concat(r) ,其中p是var p = window[l](a, o, s); r是视频的id.
var p = window[l](a, o, s);这个里面有三个参数:
a: 37425776
o: "765acd633469527b4fde252700041701"
s: 1724482607
window[l] 这个就是主要的加密函数,点击进入n8GzMXmOjoJW6qyP这个发现它的加密函数如下:看着这个函数有点像MD5的加密。
function ub98484234(y190b2880, y190b2881, y190b2882) {
var rk = [25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21, 10, 25, 16, 24, 17, 30, 23, 37, 21];
var k2 = [0x744668f3, 0x22d8cf77];
var lk = [0x744668f3, 0x22d8cf77];
var v = y190b288.slice(0);
var k = [0xbd7375f8, 0xdfcfb71b, 0x3f7fed8e, 0xf7bb9631];
for (var O = 0; O < 394; O++) {
v[O] ^= 0x29ec07c5;
}
v[1] = (v[1] << (lk[1] % 16)) | (v[1] >>> (32 - (lk[1] % 16)));
v[0] += lk[0];
v[3] = (v[3] >>> (lk[1] % 16)) | (v[3] << (32 - (lk[1] % 16)));
v[2] ^= lk[0];
v[5] += lk[1];
v[4] ^= lk[0];
v[7] -= lk[1];
v[6] = (v[6] >>> (lk[0] % 16)) | (v[6] << (32 - (lk[0] % 16)));
v[9] = (v[9] >>> (lk[1] % 16)) | (v[9] << (32 - (lk[1] % 16)));
v[8] = (v[8] >>> (lk[0] % 16)) | (v[8] << (32 - (lk[0] % 16)));
v[11] ^= lk[1];
v[10] += lk[0];
v[13] = (v[13] << (lk[1] % 16)) | (v[13] >>> (32 - (lk[1] % 16)));
v[12] ^= lk[0];
v[15] -= lk[1];
v[14] += lk[0];
v[17] -= lk[1];
v[16] -= lk[0];
v[19] = (v[19] << (lk[1] % 16)) | (v[19] >>> (32 - (lk[1] % 16)));
v[18] += lk[0];
v[21] = (v[21] >>> (lk[1] % 16)) | (v[21] << (32 - (lk[1] % 16)));
v[20] ^= lk[0];
v[23] += lk[1];
v[22] ^= lk[0];
v[25] -= lk[1];
v[24] = (v[24] >>> (lk[0] % 16)) | (v[24] << (32 - (lk[0] % 16)));
v[27] = (v[27] >>> (lk[1] % 16)) | (v[27] << (32 - (lk[1] % 16)));
v[26] = (v[26] >>> (lk[0] % 16)) | (v[26] << (32 - (lk[0] % 16)));
v[29] ^= lk[1];
v[28] += lk[0];
v[31] = (v[31] << (lk[1] % 16)) | (v[31] >>> (32 - (lk[1] % 16)));
v[30] ^= lk[0];
v[33] -= lk[1];
v[32] += lk[0];
v[35] -= lk[1];
v[34] -= lk[0];
v[37] = (v[37] << (lk[1] % 16)) | (v[37] >>> (32 - (lk[1] % 16)));
v[36] += lk[0];
v[39] = (v[39] >>> (lk[1] % 16)) | (v[39] << (32 - (lk[1] % 16)));
v[38] ^= lk[0];
v[41] += lk[1];
v[40] ^= lk[0];
v[43] -= lk[1];
v[42] = (v[42] >>> (lk[0] % 16)) | (v[42] << (32 - (lk[0] % 16)));
v[45] = (v[45] >>> (lk[1] % 16)) | (v[45] << (32 - (lk[1] % 16)));
v[44] = (v[44] >>> (lk[0] % 16)) | (v[44] << (32 - (lk[0] % 16)));
v[47] ^= lk[1];
v[46] += lk[0];
v[49] = (v[49] << (lk[1] % 16)) | (v[49] >>> (32 - (lk[1] % 16)));
v[48] ^= lk[0];
v[51] -= lk[1];
v[50] += lk[0];
v[53] -= lk[1];
v[52] -= lk[0];
v[55] = (v[55] << (lk[1] % 16)) | (v[55] >>> (32 - (lk[1] % 16)));
v[54] += lk[0];
v[57] = (v[57] >>> (lk[1] % 16)) | (v[57] << (32 - (lk[1] % 16)));
v[56] ^= lk[0];
v[59] += lk[1];
v[58] ^= lk[0];
v[61] -= lk[1];
v[60] = (v[60] >>> (lk[0] % 16)) | (v[60] << (32 - (lk[0] % 16)));
v[63] = (v[63] >>> (lk[1] % 16)) | (v[63] << (32 - (lk[1] % 16)));
v[62] = (v[62] >>> (lk[0] % 16)) | (v[62] << (32 - (lk[0] % 16)));
v[65] ^= lk[1];
v[64] += lk[0];
v[67] = (v[67] << (lk[1] % 16)) | (v[67] >>> (32 - (lk[1] % 16)));
v[66] ^= lk[0];
v[69] -= lk[1];
v[68] += lk[0];
v[71] -= lk[1];
v[70] -= lk[0];
v[73] = (v[73] << (lk[1] % 16)) | (v[73] >>> (32 - (lk[1] % 16)));
v[72] += lk[0];
v[75] = (v[75] >>> (lk[1] % 16)) | (v[75] << (32 - (lk[1] % 16)));
v[74] ^= lk[0];
v[77] += lk[1];
v[76] ^= lk[0];
v[79] -= lk[1];
v[78] = (v[78] >>> (lk[0] % 16)) | (v[78] << (32 - (lk[0] % 16)));
v[81] = (v[81] >>> (lk[1] % 16)) | (v[81] << (32 - (lk[1] % 16)));
v[80] = (v[80] >>> (lk[0] % 16)) | (v[80] << (32 - (lk[0] % 16)));
v[83] ^= lk[1];
v[82] += lk[0];
v[85] = (v[85] << (lk[1] % 16)) | (v[85] >>> (32 - (lk[1] % 16)));
v[84] ^= lk[0];
v[87] -= lk[1];
v[86] += lk[0];
v[89] -= lk[1];
v[88] -= lk[0];
v[91] = (v[91] << (lk[1] % 16)) | (v[91] >>> (32 - (lk[1] % 16)));
v[90] += lk[0];
v[93] = (v[93] >>> (lk[1] % 16)) | (v[93] << (32 - (lk[1] % 16)));
v[92] ^= lk[0];
v[95] += lk[1];
v[94] ^= lk[0];
v[97] -= lk[1];
v[96] = (v[96] >>> (lk[0] % 16)) | (v[96] << (32 - (lk[0] % 16)));
v[99] = (v[99] >>> (lk[1] % 16)) | (v[99] << (32 - (lk[1] % 16)));
v[98] = (v[98] >>> (lk[0] % 16)) | (v[98] << (32 - (lk[0] % 16)));
v[101] ^= lk[1];
v[100] += lk[0];
v[103] = (v[103] << (lk[1] % 16)) | (v[103] >>> (32 - (lk[1] % 16)));
v[102] ^= lk[0];
v[105] -= lk[1];
v[104] += lk[0];
v[107] -= lk[1];
v[106] -= lk[0];
v[109] = (v[109] << (lk[1] % 16)) | (v[109] >>> (32 - (lk[1] % 16)));
v[108] += lk[0];
v[111] = (v[111] >>> (lk[1] % 16)) | (v[111] << (32 - (lk[1] % 16)));
v[110] ^= lk[0];
v[113] += lk[1];
v[112] ^= lk[0];
v[115] -= lk[1];
v[114] = (v[114] >>> (lk[0] % 16)) | (v[114] << (32 - (lk[0] % 16)));
v[117] = (v[117] >>> (lk[1] % 16)) | (v[117] << (32 - (lk[1] % 16)));
v[116] = (v[116] >>> (lk[0] % 16)) | (v[116] << (32 - (lk[0] % 16)));
v[119] ^= lk[1];
v[118] += lk[0];
v[121] = (v[121] << (lk[1] % 16)) | (v[121] >>> (32 - (lk[1] % 16)));
v[120] ^= lk[0];
v[123] -= lk[1];
v[122] += lk[0];
v[125] -= lk[1];
v[124] -= lk[0];
v[127] = (v[127] << (lk[1] % 16)) | (v[127] >>> (32 - (lk[1] % 16)));
v[126] += lk[0];
v[129] = (v[129] >>> (lk[1] % 16)) | (v[129] << (32 - (lk[1] % 16)));
v[128] ^= lk[0];
v[131] += lk[1];
v[130] ^= lk[0];
v[133] -= lk[1];
v[132] = (v[132] >>> (lk[0] % 16)) | (v[132] << (32 - (lk[0] % 16)));
v[135] = (v[135] >>> (lk[1] % 16)) | (v[135] << (32 - (lk[1] % 16)));
v[134] = (v[134] >>> (lk[0] % 16)) | (v[134] << (32 - (lk[0] % 16)));
v[137] ^= lk[1];
v[136] += lk[0];
v[139] = (v[139] << (lk[1] % 16)) | (v[139] >>> (32 - (lk[1] % 16)));
v[138] ^= lk[0];
v[141] -= lk[1];
v[140] += lk[0];
v[143] -= lk[1];
v[142] -= lk[0];
v[145] = (v[145] << (lk[1] % 16)) | (v[145] >>> (32 - (lk[1] % 16)));
v[144] += lk[0];
v[147] = (v[147] >>> (lk[1] % 16)) | (v[147] << (32 - (lk[1] % 16)));
v[146] ^= lk[0];
v[149] += lk[1];
v[148] ^= lk[0];
v[151] -= lk[1];
v[150] = (v[150] >>> (lk[0] % 16)) | (v[150] << (32 - (lk[0] % 16)));
v[153] = (v[153] >>> (lk[1] % 16)) | (v[153] << (32 - (lk[1] % 16)));
v[152] = (v[152] >>> (lk[0] % 16)) | (v[152] << (32 - (lk[0] % 16)));
v[155] ^= lk[1];
v[154] += lk[0];
v[157] = (v[157] << (lk[1] % 16)) | (v[157] >>> (32 - (lk[1] % 16)));
v[156] ^= lk[0];
v[159] -= lk[1];
v[158] += lk[0];
v[161] -= lk[1];
v[160] -= lk[0];
v[163] = (v[163] << (lk[1] % 16)) | (v[163] >>> (32 - (lk[1] % 16)));
v[162] += lk[0];
v[165] = (v[165] >>> (lk[1] % 16)) | (v[165] << (32 - (lk[1] % 16)));
v[164] ^= lk[0];
v[167] += lk[1];
v[166] ^= lk[0];
v[169] -= lk[1];
v[168] = (v[168] >>> (lk[0] % 16)) | (v[168] << (32 - (lk[0] % 16)));
v[171] = (v[171] >>> (lk[1] % 16)) | (v[171] << (32 - (lk[1] % 16)));
v[170] = (v[170] >>> (lk[0] % 16)) | (v[170] << (32 - (lk[0] % 16)));
v[173] ^= lk[1];
v[172] += lk[0];
v[175] = (v[175] << (lk[1] % 16)) | (v[175] >>> (32 - (lk[1] % 16)));
v[174] ^= lk[0];
v[177] -= lk[1];
v[176] += lk[0];
v[179] -= lk[1];
v[178] -= lk[0];
v[181] = (v[181] << (lk[1] % 16)) | (v[181] >>> (32 - (lk[1] % 16)));
v[180] += lk[0];
v[183] = (v[183] >>> (lk[1] % 16)) | (v[183] << (32 - (lk[1] % 16)));
v[182] ^= lk[0];
v[185] += lk[1];
v[184] ^= lk[0];
v[187] -= lk[1];
v[186] = (v[186] >>> (lk[0] % 16)) | (v[186] << (32 - (lk[0] % 16)));
v[189] = (v[189] >>> (lk[1] % 16)) | (v[189] << (32 - (lk[1] % 16)));
v[188] = (v[188] >>> (lk[0] % 16)) | (v[188] << (32 - (lk[0] % 16)));
v[191] ^= lk[1];
v[190] += lk[0];
v[193] = (v[193] << (lk[1] % 16)) | (v[193] >>> (32 - (lk[1] % 16)));
v[192] ^= lk[0];
v[195] -= lk[1];
v[194] += lk[0];
v[197] -= lk[1];
v[196] -= lk[0];
v[199] = (v[199] << (lk[1] % 16)) | (v[199] >>> (32 - (lk[1] % 16)));
v[198] += lk[0];
v[201] = (v[201] >>> (lk[1] % 16)) | (v[201] << (32 - (lk[1] % 16)));
v[200] ^= lk[0];
v[203] += lk[1];
v[202] ^= lk[0];
v[205] -= lk[1];
v[204] = (v[204] >>> (lk[0] % 16)) | (v[204] << (32 - (lk[0] % 16)));
v[207] = (v[207] >>> (lk[1] % 16)) | (v[207] << (32 - (lk[1] % 16)));
v[206] = (v[206] >>> (lk[0] % 16)) | (v[206] << (32 - (lk[0] % 16)));
v[209] ^= lk[1];
v[208] += lk[0];
v[211] = (v[211] << (lk[1] % 16)) | (v[211] >>> (32 - (lk[1] % 16)));
v[210] ^= lk[0];
v[213] -= lk[1];
v[212] += lk[0];
v[215] -= lk[1];
v[214] -= lk[0];
v[217] = (v[217] << (lk[1] % 16)) | (v[217] >>> (32 - (lk[1] % 16)));
v[216] += lk[0];
v[219] = (v[219] >>> (lk[1] % 16)) | (v[219] << (32 - (lk[1] % 16)));
v[218] ^= lk[0];
v[221] += lk[1];
v[220] ^= lk[0];
v[223] -= lk[1];
v[222] = (v[222] >>> (lk[0] % 16)) | (v[222] << (32 - (lk[0] % 16)));
v[225] = (v[225] >>> (lk[1] % 16)) | (v[225] << (32 - (lk[1] % 16)));
v[224] = (v[224] >>> (lk[0] % 16)) | (v[224] << (32 - (lk[0] % 16)));
v[227] ^= lk[1];
v[226] += lk[0];
v[229] = (v[229] << (lk[1] % 16)) | (v[229] >>> (32 - (lk[1] % 16)));
v[228] ^= lk[0];
v[231] -= lk[1];
v[230] += lk[0];
v[233] -= lk[1];
v[232] -= lk[0];
v[235] = (v[235] << (lk[1] % 16)) | (v[235] >>> (32 - (lk[1] % 16)));
v[234] += lk[0];
v[237] = (v[237] >>> (lk[1] % 16)) | (v[237] << (32 - (lk[1] % 16)));
v[236] ^= lk[0];
v[239] += lk[1];
v[238] ^= lk[0];
v[241] -= lk[1];
v[240] = (v[240] >>> (lk[0] % 16)) | (v[240] << (32 - (lk[0] % 16)));
v[243] = (v[243] >>> (lk[1] % 16)) | (v[243] << (32 - (lk[1] % 16)));
v[242] = (v[242] >>> (lk[0] % 16)) | (v[242] << (32 - (lk[0] % 16)));
v[245] ^= lk[1];
v[244] += lk[0];
v[247] = (v[247] << (lk[1] % 16)) | (v[247] >>> (32 - (lk[1] % 16)));
v[246] ^= lk[0];
v[249] -= lk[1];
v[248] += lk[0];
v[251] -= lk[1];
v[250] -= lk[0];
v[253] = (v[253] << (lk[1] % 16)) | (v[253] >>> (32 - (lk[1] % 16)));
v[252] += lk[0];
v[255] = (v[255] >>> (lk[1] % 16)) | (v[255] << (32 - (lk[1] % 16)));
v[254] ^= lk[0];
v[257] += lk[1];
v[256] ^= lk[0];
v[259] -= lk[1];
v[258] = (v[258] >>> (lk[0] % 16)) | (v[258] << (32 - (lk[0] % 16)));
v[261] = (v[261] >>> (lk[1] % 16)) | (v[261] << (32 - (lk[1] % 16)));
v[260] = (v[260] >>> (lk[0] % 16)) | (v[260] << (32 - (lk[0] % 16)));
v[263] ^= lk[1];
v[262] += lk[0];
v[265] = (v[265] << (lk[1] % 16)) | (v[265] >>> (32 - (lk[1] % 16)));
v[264] ^= lk[0];
v[267] -= lk[1];
v[266] += lk[0];
v[269] -= lk[1];
v[268] -= lk[0];
v[271] = (v[271] << (lk[1] % 16)) | (v[271] >>> (32 - (lk[1] % 16)));
v[270] += lk[0];
v[273] = (v[273] >>> (lk[1] % 16)) | (v[273] << (32 - (lk[1] % 16)));
v[272] ^= lk[0];
v[275] += lk[1];
v[274] ^= lk[0];
v[277] -= lk[1];
v[276] = (v[276] >>> (lk[0] % 16)) | (v[276] << (32 - (lk[0] % 16)));
v[279] = (v[279] >>> (lk[1] % 16)) | (v[279] << (32 - (lk[1] % 16)));
v[278] = (v[278] >>> (lk[0] % 16)) | (v[278] << (32 - (lk[0] % 16)));
v[281] ^= lk[1];
v[280] += lk[0];
v[283] = (v[283] << (lk[1] % 16)) | (v[283] >>> (32 - (lk[1] % 16)));
v[282] ^= lk[0];
v[285] -= lk[1];
v[284] += lk[0];
v[287] -= lk[1];
v[286] -= lk[0];
v[289] = (v[289] << (lk[1] % 16)) | (v[289] >>> (32 - (lk[1] % 16)));
v[288] += lk[0];
v[291] = (v[291] >>> (lk[1] % 16)) | (v[291] << (32 - (lk[1] % 16)));
v[290] ^= lk[0];
v[293] += lk[1];
v[292] ^= lk[0];
v[295] -= lk[1];
v[294] = (v[294] >>> (lk[0] % 16)) | (v[294] << (32 - (lk[0] % 16)));
v[297] = (v[297] >>> (lk[1] % 16)) | (v[297] << (32 - (lk[1] % 16)));
v[296] = (v[296] >>> (lk[0] % 16)) | (v[296] << (32 - (lk[0] % 16)));
v[299] ^= lk[1];
v[298] += lk[0];
v[301] = (v[301] << (lk[1] % 16)) | (v[301] >>> (32 - (lk[1] % 16)));
v[300] ^= lk[0];
v[303] -= lk[1];
v[302] += lk[0];
v[305] -= lk[1];
v[304] -= lk[0];
v[307] = (v[307] << (lk[1] % 16)) | (v[307] >>> (32 - (lk[1] % 16)));
v[306] += lk[0];
v[309] = (v[309] >>> (lk[1] % 16)) | (v[309] << (32 - (lk[1] % 16)));
v[308] ^= lk[0];
v[311] += lk[1];
v[310] ^= lk[0];
v[313] -= lk[1];
v[312] = (v[312] >>> (lk[0] % 16)) | (v[312] << (32 - (lk[0] % 16)));
v[315] = (v[315] >>> (lk[1] % 16)) | (v[315] << (32 - (lk[1] % 16)));
v[314] = (v[314] >>> (lk[0] % 16)) | (v[314] << (32 - (lk[0] % 16)));
v[317] ^= lk[1];
v[316] += lk[0];
v[319] = (v[319] << (lk[1] % 16)) | (v[319] >>> (32 - (lk[1] % 16)));
v[318] ^= lk[0];
v[321] -= lk[1];
v[320] += lk[0];
v[323] -= lk[1];
v[322] -= lk[0];
v[325] = (v[325] << (lk[1] % 16)) | (v[325] >>> (32 - (lk[1] % 16)));
v[324] += lk[0];
v[327] = (v[327] >>> (lk[1] % 16)) | (v[327] << (32 - (lk[1] % 16)));
v[326] ^= lk[0];
v[329] += lk[1];
v[328] ^= lk[0];
v[331] -= lk[1];
v[330] = (v[330] >>> (lk[0] % 16)) | (v[330] << (32 - (lk[0] % 16)));
v[333] = (v[333] >>> (lk[1] % 16)) | (v[333] << (32 - (lk[1] % 16)));
v[332] = (v[332] >>> (lk[0] % 16)) | (v[332] << (32 - (lk[0] % 16)));
v[335] ^= lk[1];
v[334] += lk[0];
v[337] = (v[337] << (lk[1] % 16)) | (v[337] >>> (32 - (lk[1] % 16)));
v[336] ^= lk[0];
v[339] -= lk[1];
v[338] += lk[0];
v[341] -= lk[1];
v[340] -= lk[0];
v[343] = (v[343] << (lk[1] % 16)) | (v[343] >>> (32 - (lk[1] % 16)));
v[342] += lk[0];
v[345] = (v[345] >>> (lk[1] % 16)) | (v[345] << (32 - (lk[1] % 16)));
v[344] ^= lk[0];
v[347] += lk[1];
v[346] ^= lk[0];
v[349] -= lk[1];
v[348] = (v[348] >>> (lk[0] % 16)) | (v[348] << (32 - (lk[0] % 16)));
v[351] = (v[351] >>> (lk[1] % 16)) | (v[351] << (32 - (lk[1] % 16)));
v[350] = (v[350] >>> (lk[0] % 16)) | (v[350] << (32 - (lk[0] % 16)));
v[353] ^= lk[1];
v[352] += lk[0];
v[355] = (v[355] << (lk[1] % 16)) | (v[355] >>> (32 - (lk[1] % 16)));
v[354] ^= lk[0];
v[357] -= lk[1];
v[356] += lk[0];
v[359] -= lk[1];
v[358] -= lk[0];
v[361] = (v[361] << (lk[1] % 16)) | (v[361] >>> (32 - (lk[1] % 16)));
v[360] += lk[0];
v[363] = (v[363] >>> (lk[1] % 16)) | (v[363] << (32 - (lk[1] % 16)));
v[362] ^= lk[0];
v[365] += lk[1];
v[364] ^= lk[0];
v[367] -= lk[1];
v[366] = (v[366] >>> (lk[0] % 16)) | (v[366] << (32 - (lk[0] % 16)));
v[369] = (v[369] >>> (lk[1] % 16)) | (v[369] << (32 - (lk[1] % 16)));
v[368] = (v[368] >>> (lk[0] % 16)) | (v[368] << (32 - (lk[0] % 16)));
v[371] ^= lk[1];
v[370] += lk[0];
v[373] = (v[373] << (lk[1] % 16)) | (v[373] >>> (32 - (lk[1] % 16)));
v[372] ^= lk[0];
v[375] -= lk[1];
v[374] += lk[0];
v[377] -= lk[1];
v[376] -= lk[0];
v[379] = (v[379] << (lk[1] % 16)) | (v[379] >>> (32 - (lk[1] % 16)));
v[378] += lk[0];
v[381] = (v[381] >>> (lk[1] % 16)) | (v[381] << (32 - (lk[1] % 16)));
v[380] ^= lk[0];
v[383] += lk[1];
v[382] ^= lk[0];
v[385] -= lk[1];
v[384] = (v[384] >>> (lk[0] % 16)) | (v[384] << (32 - (lk[0] % 16)));
v[387] = (v[387] >>> (lk[1] % 16)) | (v[387] << (32 - (lk[1] % 16)));
v[386] = (v[386] >>> (lk[0] % 16)) | (v[386] << (32 - (lk[0] % 16)));
v[389] ^= lk[1];
v[388] += lk[0];
v[391] = (v[391] << (lk[1] % 16)) | (v[391] >>> (32 - (lk[1] % 16)));
v[390] ^= lk[0];
v[393] -= lk[1];
v[392] += lk[0];
for (var I = 0; I < 394; I += 2) {
var i, v0 = v[I] ^ k2[0], v1 = v[I + 1] ^ k2[1], d = 0x9E3779B9, sum = d * rk[I / 2];
for (i = 0; i < rk[I / 2]; i++) {
v1 -= (((v0 << 4) ^ (v0 >>> 5)) + v0) ^ (sum + k[(sum >>> 11) & 3]);
sum -= d;
v0 -= (((v1 << 4) ^ (v1 >>> 5)) + v1) ^ (sum + k[sum & 3]);
}
v[I] = v0 ^ k2[1];
v[I + 1] = v1 ^ k2[0];
}
for (var O = 393; O > 0; O--) {
v[O] ^= v[O - 1];
}
v[0] ^= 0x29ec07c5;
var strc = "";
for (var i = 0; i < v.length; i++) {
strc += String.fromCharCode(v[i] & 0xff, v[i] >>> 8 & 0xff, v[i] >>> 16 & 0xff, v[i] >>> 24 & 0xff);
}
return eval(strc)(y190b2880, y190b2881, y190b2882);
}
在代码这里调试可以看到可以得到结果。
后面的就是自己调试了,这只是单个的视频,多个视频的有坑,大家尝试。