潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)
PyExecJs使用
PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库。
安装
pip install PyExecJS
例子
>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> ctx = execjs.compile("""
... function add(x, y) {
... return x + y;
... }
... """)
>>> ctx.call("add", 1, 2)
3
import execjs import json pl = "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" aes = "b6ce159334e155d8" with open('luo.js', 'r', encoding='utf8') as f: result = execjs.compile(f.read()) result = result.call('N', pl, aes) result = json.loads(result) for i in result: print(i)
js 代码
N = function(a, b, c) { var d = decode(a) , e = d.slice(8, 16) , f = m(j(b, c), e) , g = f.key , h = f.iv; return d = d.slice(16, d.length), a = o(d, g, h, c); }; decode = function(b) { b = b.replace(/\n/g, ""); var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var c, d = [], e = [], f = []; for (c = 0; b.length > c; c += 4) e[0] = a.indexOf(b.charAt(c)), e[1] = a.indexOf(b.charAt(c + 1)), e[2] = a.indexOf(b.charAt(c + 2)), e[3] = a.indexOf(b.charAt(c + 3)), f[0] = e[0] << 2 | e[1] >> 4, f[1] = (15 & e[1]) << 4 | e[2] >> 2, f[2] = (3 & e[2]) << 6 | e[3], d.push(f[0], f[1], f[2]); d = d.slice(0, d.length - d.length % 16); return d }; d = function(a) { try { return unescape(encodeURIComponent(a)) } catch (b) { throw "Error on UTF-8 encode" } }; j = function(a, b) { var c, e = []; for (b || (a = d(a)), c = 0; a.length > c; c++) e[c] = a.charCodeAt(c); return e }; z = function(a, b) { var c, d = []; for (c = 0; a.length > c; c += b) d[c / b] = parseInt(a.substr(c, b), 16); return d }; O = function(a) { function b(a, b) { return a << b | a >>> 32 - b } function c(a, b) { var c, d, e, f, g; return e = 2147483648 & a, f = 2147483648 & b, c = 1073741824 & a, d = 1073741824 & b, g = (1073741823 & a) + (1073741823 & b), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f } function d(a, b, c) { return a & b | ~a & c } function e(a, b, c) { return a & c | b & ~c } function f(a, b, c) { return a ^ b ^ c } function g(a, b, c) { return b ^ (a | ~c) } function h(a, e, f, g, h, i, j) { return a = c(a, c(c(d(e, f, g), h), j)), c(b(a, i), e) } function i(a, d, f, g, h, i, j) { return a = c(a, c(c(e(d, f, g), h), j)), c(b(a, i), d) } function j(a, d, e, g, h, i, j) { return a = c(a, c(c(f(d, e, g), h), j)), c(b(a, i), d) } function k(a, d, e, f, h, i, j) { return a = c(a, c(c(g(d, e, f), h), j)), c(b(a, i), d) } function l(a) { for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = [], h = 0, i = 0; c > i; ) b = (i - i % 4) / 4, h = 8 * (i % 4), g[b] = g[b] | a[i] << h, i++; return b = (i - i % 4) / 4, h = 8 * (i % 4), g[b] = g[b] | 128 << h, g[f - 2] = c << 3, g[f - 1] = c >>> 29, g } function m(a) { var b, c, d = []; for (c = 0; 3 >= c; c++) b = 255 & a >>> 8 * c, d = d.concat(b); return d } var n, o, p, q, r, s, t, u, v, w = [], x = z("67452301efcdab8998badcfe10325476d76aa478e8c7b756242070dbc1bdceeef57c0faf4787c62aa8304613fd469501698098d88b44f7afffff5bb1895cd7be6b901122fd987193a679438e49b40821f61e2562c040b340265e5a51e9b6c7aad62f105d02441453d8a1e681e7d3fbc821e1cde6c33707d6f4d50d87455a14eda9e3e905fcefa3f8676f02d98d2a4c8afffa39428771f6816d9d6122fde5380ca4beea444bdecfa9f6bb4b60bebfbc70289b7ec6eaa127fad4ef308504881d05d9d4d039e6db99e51fa27cf8c4ac5665f4292244432aff97ab9423a7fc93a039655b59c38f0ccc92ffeff47d85845dd16fa87e4ffe2ce6e0a30143144e0811a1f7537e82bd3af2352ad7d2bbeb86d391", 8); for (w = l(a), s = x[0], t = x[1], u = x[2], v = x[3], n = 0; w.length > n; n += 16) o = s, p = t, q = u, r = v, s = h(s, t, u, v, w[n + 0], 7, x[4]), v = h(v, s, t, u, w[n + 1], 12, x[5]), u = h(u, v, s, t, w[n + 2], 17, x[6]), t = h(t, u, v, s, w[n + 3], 22, x[7]), s = h(s, t, u, v, w[n + 4], 7, x[8]), v = h(v, s, t, u, w[n + 5], 12, x[9]), u = h(u, v, s, t, w[n + 6], 17, x[10]), t = h(t, u, v, s, w[n + 7], 22, x[11]), s = h(s, t, u, v, w[n + 8], 7, x[12]), v = h(v, s, t, u, w[n + 9], 12, x[13]), u = h(u, v, s, t, w[n + 10], 17, x[14]), t = h(t, u, v, s, w[n + 11], 22, x[15]), s = h(s, t, u, v, w[n + 12], 7, x[16]), v = h(v, s, t, u, w[n + 13], 12, x[17]), u = h(u, v, s, t, w[n + 14], 17, x[18]), t = h(t, u, v, s, w[n + 15], 22, x[19]), s = i(s, t, u, v, w[n + 1], 5, x[20]), v = i(v, s, t, u, w[n + 6], 9, x[21]), u = i(u, v, s, t, w[n + 11], 14, x[22]), t = i(t, u, v, s, w[n + 0], 20, x[23]), s = i(s, t, u, v, w[n + 5], 5, x[24]), v = i(v, s, t, u, w[n + 10], 9, x[25]), u = i(u, v, s, t, w[n + 15], 14, x[26]), t = i(t, u, v, s, w[n + 4], 20, x[27]), s = i(s, t, u, v, w[n + 9], 5, x[28]), v = i(v, s, t, u, w[n + 14], 9, x[29]), u = i(u, v, s, t, w[n + 3], 14, x[30]), t = i(t, u, v, s, w[n + 8], 20, x[31]), s = i(s, t, u, v, w[n + 13], 5, x[32]), v = i(v, s, t, u, w[n + 2], 9, x[33]), u = i(u, v, s, t, w[n + 7], 14, x[34]), t = i(t, u, v, s, w[n + 12], 20, x[35]), s = j(s, t, u, v, w[n + 5], 4, x[36]), v = j(v, s, t, u, w[n + 8], 11, x[37]), u = j(u, v, s, t, w[n + 11], 16, x[38]), t = j(t, u, v, s, w[n + 14], 23, x[39]), s = j(s, t, u, v, w[n + 1], 4, x[40]), v = j(v, s, t, u, w[n + 4], 11, x[41]), u = j(u, v, s, t, w[n + 7], 16, x[42]), t = j(t, u, v, s, w[n + 10], 23, x[43]), s = j(s, t, u, v, w[n + 13], 4, x[44]), v = j(v, s, t, u, w[n + 0], 11, x[45]), u = j(u, v, s, t, w[n + 3], 16, x[46]), t = j(t, u, v, s, w[n + 6], 23, x[47]), s = j(s, t, u, v, w[n + 9], 4, x[48]), v = j(v, s, t, u, w[n + 12], 11, x[49]), u = j(u, v, s, t, w[n + 15], 16, x[50]), t = j(t, u, v, s, w[n + 2], 23, x[51]), s = k(s, t, u, v, w[n + 0], 6, x[52]), v = k(v, s, t, u, w[n + 7], 10, x[53]), u = k(u, v, s, t, w[n + 14], 15, x[54]), t = k(t, u, v, s, w[n + 5], 21, x[55]), s = k(s, t, u, v, w[n + 12], 6, x[56]), v = k(v, s, t, u, w[n + 3], 10, x[57]), u = k(u, v, s, t, w[n + 10], 15, x[58]), t = k(t, u, v, s, w[n + 1], 21, x[59]), s = k(s, t, u, v, w[n + 8], 6, x[60]), v = k(v, s, t, u, w[n + 15], 10, x[61]), u = k(u, v, s, t, w[n + 6], 15, x[62]), t = k(t, u, v, s, w[n + 13], 21, x[63]), s = k(s, t, u, v, w[n + 4], 6, x[64]), v = k(v, s, t, u, w[n + 11], 10, x[65]), u = k(u, v, s, t, w[n + 2], 15, x[66]), t = k(t, u, v, s, w[n + 9], 21, x[67]), s = c(s, o), t = c(t, p), u = c(u, q), v = c(v, r); return m(s).concat(m(t), m(u), m(v)) }; m = function(c, d) { var b = 8; var a = 14; var e, f = a >= 12 ? 3 : 2, g = [], h = [], i = [], j = [], k = c.concat(d); for (i[0] = O(k), j = i[0], e = 1; f > e; e++) i[e] = O(i[e - 1].concat(k)), j = j.concat(i[e]); return g = j.slice(0, 4 * b), h = j.slice(4 * b, 4 * b + 16), { key: g, iv: h } }; e = function(a) { try { return decodeURIComponent(escape(a)) } catch (b) { throw "Bad Key" } }; g = function(a, b) { var c, d, e = ""; if (b) { if (c = a[15], c > 16) throw "Decryption error: Maybe bad key"; if (16 === c) return ""; for (d = 0; 16 - c > d; d++) e += String.fromCharCode(a[d]) } else for (d = 0; 16 > d; d++) e += String.fromCharCode(a[d]); return e }; v = function(a, b) { var c, d = []; for (c = 0; 16 > c; c++) d[c] = a[c] ^ b[c]; return d }; o = function(a, b, c, d) { b = w(b); var f, h = a.length / 16, i = [], j = [], k = ""; for (f = 0; h > f; f++) i.push(a.slice(16 * f, 16 * (f + 1))); for (f = i.length - 1; f >= 0; f--) j[f] = q(i[f], b), j[f] = 0 === f ? v(j[f], c) : v(j[f], i[f - 1]); for (f = 0; h - 1 > f; f++) k += g(j[f]); return k += g(j[f], !0), d ? k : e(k) }; u = function(a, b, c) { var d, e = []; for (d = 0; 16 > d; d++) e[d] = a[d] ^ b[c][d]; return e }; s = function(a) { var b, d = [], e = c ? [0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3] : [0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11]; for (b = 0; 16 > b; b++) d[b] = a[e[b]]; return d }; r = function(a) { var b, d = c ? E : D, e = []; for (b = 0; 16 > b; b++) e[b] = d[a[b]]; return e }; t = function(a) { var b, d = []; if (c) for (b = 0; 4 > b; b++) d[4 * b] = L[a[4 * b]] ^ J[a[1 + 4 * b]] ^ K[a[2 + 4 * b]] ^ I[a[3 + 4 * b]], d[1 + 4 * b] = I[a[4 * b]] ^ L[a[1 + 4 * b]] ^ J[a[2 + 4 * b]] ^ K[a[3 + 4 * b]], d[2 + 4 * b] = K[a[4 * b]] ^ I[a[1 + 4 * b]] ^ L[a[2 + 4 * b]] ^ J[a[3 + 4 * b]], d[3 + 4 * b] = J[a[4 * b]] ^ K[a[1 + 4 * b]] ^ I[a[2 + 4 * b]] ^ L[a[3 + 4 * b]]; else for (b = 0; 4 > b; b++) d[4 * b] = G[a[4 * b]] ^ H[a[1 + 4 * b]] ^ a[2 + 4 * b] ^ a[3 + 4 * b], d[1 + 4 * b] = a[4 * b] ^ G[a[1 + 4 * b]] ^ H[a[2 + 4 * b]] ^ a[3 + 4 * b], d[2 + 4 * b] = a[4 * b] ^ a[1 + 4 * b] ^ G[a[2 + 4 * b]] ^ H[a[3 + 4 * b]], d[3 + 4 * b] = H[a[4 * b]] ^ a[1 + 4 * b] ^ a[2 + 4 * b] ^ G[a[3 + 4 * b]]; return d }; q = function(b, d) { var a = 14; c = !0; var e, f = u(b, d, a); for (e = a - 1; e > -1; e--) f = s(f), f = r(f), f = u(f, d, e), e > 0 && (f = t(f)); return f }; A = function(a) { var b, c = []; for (b = 0; a.length > b; b++) c[a[b]] = b; return c }; B = function(a, b) { var c, d; for (d = 0, c = 0; 8 > c; c++) d = 1 === (1 & b) ? d ^ a : d, a = a > 127 ? 283 ^ a << 1 : a << 1, b >>>= 1; return d }; C = function(a) { var b, c = []; for (b = 0; 256 > b; b++) c[b] = B(a, b); return c }; var D = z("637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16", 2) , E = A(D) , G = C(2) , H = C(3) , I = C(9) , J = C(11) , K = C(13) , L = C(14); w = function(c) { var a = 14, b = 8; var F = z("01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591", 2); var d, e, f, g, h = [], i = [], j = []; for (d = 0; b > d; d++) e = [c[4 * d], c[4 * d + 1], c[4 * d + 2], c[4 * d + 3]], h[d] = e; for (d = b; 4 * (a + 1) > d; d++) { for (h[d] = [], f = 0; 4 > f; f++) i[f] = h[d - 1][f]; for (0 === d % b ? (i = x(y(i)), i[0] ^= F[d / b - 1]) : b > 6 && 4 === d % b && (i = x(i)), f = 0; 4 > f; f++) h[d][f] = h[d - b][f] ^ i[f] } for (d = 0; a + 1 > d; d++) for (j[d] = [], g = 0; 4 > g; g++) j[d].push(h[4 * d + g][0], h[4 * d + g][1], h[4 * d + g][2], h[4 * d + g][3]); return j }; y = function(a) { var b, c = a[0]; for (b = 0; 4 > b; b++) a[b] = a[b + 1]; return a[3] = c, a }; x = function(a) { for (var b = 0; 4 > b; b++) a[b] = D[a[b]]; return a };