猿人学js混淆-源码乱码解法总结

  • 网址
  • 解法
  • 心得

网址

js混淆-源码乱码网址

解法

我是在360浏览器下打开网址,进入审查元素。

打开第2页

发现请求网址为:http://match.yuanrenxue.com/api/match/1?page=2&m=be219a5c31df073442c2a2e5791a84d7%E4%B8%A81622881314
可以拆解为url=‘http://match.yuanrenxue.com/api/match/1?page={}&m={}’.format(a,b)形式,a,b分别填入页数和m的值。

在网页中查询得到m=be219a5c31df073442c2a2e5791a84d7丨1622881314,然后将丨替换成%E4%B8%A8,就可以了。

注意如果尝试在python中替换,基本会得到错误的结果,因为有中文字符丨。
所以在js内处理能避免该问题。

网页查找m可以查找丨。

取出js代码,进入格式化界面

取出有价值的js代码

request = function() {var timestamp = Date.parse(new Date()) + 100000000;var m = oo0O0(timestamp.toString()) + window.f;var list = {"page": window.page,"m": m + '丨' + timestamp / 1000};

发现m与oo0O0()有关,在源码中查oo0O0,同时取出js代码片段,进入格式化界面。

取出有价值的js代码

w();
dd();
function oo0O0(mw) {window.b = '';for (var i = 0,len = window.a.length; i < len; i++) {console.log(window.a[i]);window.b += String[document.e + document.g](window.a[i][document.f + document.h]() - i - window.c)}var U = ['W5r5W6VdIHZcT8kU', 'WQ8CWRaxWQirAW=='];var J = function(o, E) {o = o - 0x0;var N = U[o];if (J['bSSGte'] === undefined) {var Y = function(w) {var m = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',T = String(w)['replace'](/=+$/, '');var A = '';for (var C = 0x0,b, W, l = 0x0; W = T['charAt'](l++);~W && (b = C % 0x4 ? b * 0x40 + W: W, C++%0x4) ? A += String['fromCharCode'](0xff & b >> ( - 0x2 * C & 0x6)) : 0x0) {W = m['indexOf'](W)}return A};var t = function(w, m) {var T = [],A = 0x0,C,b = '',W = '';w = Y(w);for (var R = 0x0,v = w['length']; R < v; R++) {W += '%' + ('00' + w['charCodeAt'](R)['toString'](0x10))['slice']( - 0x2)}w = decodeURIComponent(W);var l;for (l = 0x0; l < 0x100; l++) {T[l] = l}for (l = 0x0; l < 0x100; l++) {A = (A + T[l] + m['charCodeAt'](l % m['length'])) % 0x100,C = T[l],T[l] = T[A],T[A] = C}l = 0x0,A = 0x0;for (var L = 0x0; L < w['length']; L++) {l = (l + 0x1) % 0x100,A = (A + T[l]) % 0x100,C = T[l],T[l] = T[A],T[A] = C,b += String['fromCharCode'](w['charCodeAt'](L) ^ T[(T[l] + T[A]) % 0x100])}return b};J['luAabU'] = t,J['qlVPZg'] = {},J['bSSGte'] = !![]}var H = J['qlVPZg'][o];return H===undefined?(J['TUDBIJ']===undefined&&(J['TUDBIJ']=!![]),N=J['luAabU'](N,E),J['qlVPZg'][o]=N):N=H,N};eval(atob(window['b'])[J('0x0', ']dQW')](J('0x1', 'GTu!'), '\x27' + mw + '\x27'));return ''
}

发现oo0O0(timestamp.toString())=‘’,window.f不知道从哪里来,但是与oo0O0(timestamp.toString())的执行有关。锁定eval(),发现atob(window[‘b’])是解码。将代码放到浏览器中执行。

将得到的代码取出,进入格式化界面。

取出有价值的js代码

var hexcase = 0;
var b64pad = "";
var chrsz = 16;
function hex_md5(a) {return binl2hex(core_md5(str2binl(a), a.length * chrsz))
}
function b64_md5(a) {return binl2b64(core_md5(str2binl(a), a.length * chrsz))
}
function str_md5(a) {return binl2str(core_md5(str2binl(a), a.length * chrsz))
}
function hex_hmac_md5(a, b) {return binl2hex(core_hmac_md5(a, b))
}
function b64_hmac_md5(a, b) {return binl2b64(core_hmac_md5(a, b))
}
function str_hmac_md5(a, b) {return binl2str(core_hmac_md5(a, b))
}
function md5_vm_test() {return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"
}
function core_md5(p, k) {p[k >> 5] |= 128 << ((k) % 32);p[(((k + 64) >>> 9) << 4) + 14] = k;var o = 1732584193;var n = -271733879;var m = -1732584194;var l = 271733878;for (var g = 0; g < p.length; g += 16) {var j = o;var h = n;var f = m;var e = l;o = md5_ff(o, n, m, l, p[g + 0], 7, -680976936);l = md5_ff(l, o, n, m, p[g + 1], 12, -389564586);m = md5_ff(m, l, o, n, p[g + 2], 17, 606105819);n = md5_ff(n, m, l, o, p[g + 3], 22, -1044525330);o = md5_ff(o, n, m, l, p[g + 4], 7, -176418897);l = md5_ff(l, o, n, m, p[g + 5], 12, 1200080426);m = md5_ff(m, l, o, n, p[g + 6], 17, -1473231341);n = md5_ff(n, m, l, o, p[g + 7], 22, -45705983);o = md5_ff(o, n, m, l, p[g + 8], 7, 1770035416);l = md5_ff(l, o, n, m, p[g + 9], 12, -1958414417);m = md5_ff(m, l, o, n, p[g + 10], 17, -42063);n = md5_ff(n, m, l, o, p[g + 11], 22, -1990404162);o = md5_ff(o, n, m, l, p[g + 12], 7, 1804660682);l = md5_ff(l, o, n, m, p[g + 13], 12, -40341101);m = md5_ff(m, l, o, n, p[g + 14], 17, -1502002290);n = md5_ff(n, m, l, o, p[g + 15], 22, 1236535329);o = md5_gg(o, n, m, l, p[g + 1], 5, -165796510);l = md5_gg(l, o, n, m, p[g + 6], 9, -1069501632);m = md5_gg(m, l, o, n, p[g + 11], 14, 643717713);n = md5_gg(n, m, l, o, p[g + 0], 20, -373897302);o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691);l = md5_gg(l, o, n, m, p[g + 10], 9, 38016083);m = md5_gg(m, l, o, n, p[g + 15], 14, -660478335);n = md5_gg(n, m, l, o, p[g + 4], 20, -405537848);o = md5_gg(o, n, m, l, p[g + 9], 5, 568446438);l = md5_gg(l, o, n, m, p[g + 14], 9, -1019803690);m = md5_gg(m, l, o, n, p[g + 3], 14, -187363961);n = md5_gg(n, m, l, o, p[g + 8], 20, 1163531501);o = md5_gg(o, n, m, l, p[g + 13], 5, -1444681467);l = md5_gg(l, o, n, m, p[g + 2], 9, -51403784);m = md5_gg(m, l, o, n, p[g + 7], 14, 1735328473);n = md5_gg(n, m, l, o, p[g + 12], 20, -1921207734);o = md5_hh(o, n, m, l, p[g + 5], 4, -378558);l = md5_hh(l, o, n, m, p[g + 8], 11, -2022574463);m = md5_hh(m, l, o, n, p[g + 11], 16, 1839030562);n = md5_hh(n, m, l, o, p[g + 14], 23, -35309556);o = md5_hh(o, n, m, l, p[g + 1], 4, -1530992060);l = md5_hh(l, o, n, m, p[g + 4], 11, 1272893353);m = md5_hh(m, l, o, n, p[g + 7], 16, -155497632);n = md5_hh(n, m, l, o, p[g + 10], 23, -1094730640);o = md5_hh(o, n, m, l, p[g + 13], 4, 681279174);l = md5_hh(l, o, n, m, p[g + 0], 11, -358537222);m = md5_hh(m, l, o, n, p[g + 3], 16, -722881979);n = md5_hh(n, m, l, o, p[g + 6], 23, 76029189);o = md5_hh(o, n, m, l, p[g + 9], 4, -640364487);l = md5_hh(l, o, n, m, p[g + 12], 11, -421815835);m = md5_hh(m, l, o, n, p[g + 15], 16, 530742520);n = md5_hh(n, m, l, o, p[g + 2], 23, -995338651);o = md5_ii(o, n, m, l, p[g + 0], 6, -198630844);l = md5_ii(l, o, n, m, p[g + 7], 10, 11261161415);m = md5_ii(m, l, o, n, p[g + 14], 15, -1416354905);n = md5_ii(n, m, l, o, p[g + 5], 21, -57434055);o = md5_ii(o, n, m, l, p[g + 12], 6, 1700485571);l = md5_ii(l, o, n, m, p[g + 3], 10, -1894446606);m = md5_ii(m, l, o, n, p[g + 10], 15, -1051523);n = md5_ii(n, m, l, o, p[g + 1], 21, -2054922799);o = md5_ii(o, n, m, l, p[g + 8], 6, 1873313359);l = md5_ii(l, o, n, m, p[g + 15], 10, -30611744);m = md5_ii(m, l, o, n, p[g + 6], 15, -1560198380);n = md5_ii(n, m, l, o, p[g + 13], 21, 1309151649);o = md5_ii(o, n, m, l, p[g + 4], 6, -145523070);l = md5_ii(l, o, n, m, p[g + 11], 10, -1120210379);m = md5_ii(m, l, o, n, p[g + 2], 15, 718787259);n = md5_ii(n, m, l, o, p[g + 9], 21, -343485551);o = safe_add(o, j);n = safe_add(n, h);m = safe_add(m, f);l = safe_add(l, e)}return Array(o, n, m, l)
}
function md5_cmn(h, e, d, c, g, f) {return safe_add(bit_rol(safe_add(safe_add(e, h), safe_add(c, f)), g), d)
}
function md5_ff(g, f, k, j, e, i, h) {return md5_cmn((f & k) | ((~f) & j), g, f, e, i, h)
}
function md5_gg(g, f, k, j, e, i, h) {return md5_cmn((f & j) | (k & (~j)), g, f, e, i, h)
}
function md5_hh(g, f, k, j, e, i, h) {return md5_cmn(f ^ k ^ j, g, f, e, i, h)
}
function md5_ii(g, f, k, j, e, i, h) {return md5_cmn(k ^ (f | (~j)), g, f, e, i, h)
}
function core_hmac_md5(c, f) {var e = str2binl(c);if (e.length > 16) {e = core_md5(e, c.length * chrsz)}var a = Array(16),d = Array(16);for (var b = 0; b < 16; b++) {a[b] = e[b] ^ 909522486;d[b] = e[b] ^ 1549556828}var g = core_md5(a.concat(str2binl(f)), 512 + f.length * chrsz);return core_md5(d.concat(g), 512 + 128)
}
function safe_add(a, d) {var c = (a & 65535) + (d & 65535);var b = (a >> 16) + (d >> 16) + (c >> 16);return (b << 16) | (c & 65535)
}
function bit_rol(a, b) {return (a << b) | (a >>> (32 - b))
}
function str2binl(d) {var c = Array();var a = (1 << chrsz) - 1;for (var b = 0; b < d.length * chrsz; b += chrsz) {c[b >> 5] |= (d.charCodeAt(b / chrsz) & a) << (b % 32)}return c
}
function binl2str(c) {var d = "";var a = (1 << chrsz) - 1;for (var b = 0; b < c.length * 32; b += chrsz) {d += String.fromCharCode((c[b >> 5] >>> (b % 32)) & a)}return d
}
function binl2hex(c) {var b = hexcase ? "0123456789ABCDEF": "0123456789abcdef";var d = "";for (var a = 0; a < c.length * 4; a++) {d += b.charAt((c[a >> 2] >> ((a % 4) * 8 + 4)) & 15) + b.charAt((c[a >> 2] >> ((a % 4) * 8)) & 15)}return d
}
function binl2b64(d) {var c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var f = "";for (var b = 0; b < d.length * 4; b += 3) {var e = (((d[b >> 2] >> 8 * (b % 4)) & 255) << 16) | (((d[b + 1 >> 2] >> 8 * ((b + 1) % 4)) & 255) << 8) | ((d[b + 2 >> 2] >> 8 * ((b + 2) % 4)) & 255);for (var a = 0; a < 4; a++) {if (b * 8 + a * 6 > d.length * 32) {f += b64pad} else {f += c.charAt((e >> 6 * (3 - a)) & 63)}}}return f
};
window.f = hex_md5(mwqqppz)

发现window.f = hex_md5(mwqqppz),但是mwqqppz不知道是啥。网页源码也查不出,但是eval()未分析完,继续浏览器中执行J(‘0x0’, ‘]dQW’)、J(‘0x1’, ‘GTu!’)、’\x27’ + mw + ‘\x27’。mw是oo0O0(timestamp.toString())送进来的参数,即mw=timestamp.toString()。将U、J变量在浏览器重新定义,再执行解码。

取出执行必须的js代码,修改成达到执行结果为m值的形式。

var hexcase=0;
var b64pad="";
var chrsz=16;
function hex_md5(a){return binl2hex(core_md5(str2binl(a),a.length*chrsz))
}
function b64_md5(a){return binl2b64(core_md5(str2binl(a),a.length*chrsz))
}
function str_md5(a){return binl2str(core_md5(str2binl(a),a.length*chrsz))
}
function hex_hmac_md5(a,b){return binl2hex(core_hmac_md5(a,b))
}
function b64_hmac_md5(a,b){return binl2b64(core_hmac_md5(a,b))
}
function str_hmac_md5(a,b){return binl2str(core_hmac_md5(a,b))
}
function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"
}
function core_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680976936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804660682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1921207734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722881979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,11261161415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894446606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)
}
function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)
}
function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}
function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}
function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}
function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)
}
function core_hmac_md5(c,f){var e=str2binl(c);if(e.length>16){e=core_md5(e,c.length*chrsz)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=core_md5(a.concat(str2binl(f)),512+f.length*chrsz);return core_md5(d.concat(g),512+128)
}
function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return (b<<16)|(c&65535)
}
function bit_rol(a,b){return (a<<b)|(a>>>(32-b))}
function str2binl(d){var c=Array();var a=(1<<chrsz)-1;for(var b=0;b<d.length*chrsz;b+=chrsz){c[b>>5]|=(d.charCodeAt(b/chrsz)&a)<<(b%32)}return c
}
function binl2str(c){var d="";var a=(1<<chrsz)-1;for(var b=0;b<c.length*32;b+=chrsz){d+=String.fromCharCode((c[b>>5]>>>(b%32))&a)}return d
}
function binl2hex(c){var b=hexcase?"0123456789ABCDEF":"0123456789abcdef";var d="";for(var a=0;a<c.length*4;a++){d+=b.charAt((c[a>>2]>>((a%4)*8+4))&15)+b.charAt((c[a>>2]>>((a%4)*8))&15)}return d}
function binl2b64(d){var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var f="";for(var b=0;b<d.length*4;b+=3){var e=(((d[b>>2]>>8*(b%4))&255)<<16)|(((d[b+1>>2]>>8*((b+1)%4))&255)<<8)|((d[b+2>>2]>>8*((b+2)%4))&255);for(var a=0;a<4;a++){if(b*8+a*6>d.length*32){f+=b64pad}else{f+=c.charAt((e>>6*(3-a))&63)}}}return f
};
var J=function(o,E){o=o-0x0;var N=U[o];if(J['bSSGte']===undefined){var Y=function(w){var m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',T=String(w)['replace'](/=+$/,'');var A='';for(var C=0x0,b,W,l=0x0;W=T['charAt'](l++);~W&&(b=C%0x4?b*0x40+W:W,C++%0x4)?A+=String['fromCharCode'](0xff&b>>(-0x2*C&0x6)):0x0){W=m['indexOf'](W)}return A};var t=function(w,m){var T=[],A=0x0,C,b='',W='';w=Y(w);for(var R=0x0,v=w['length'];R<v;R++){W+='%'+('00'+w['charCodeAt'](R)['toString'](0x10))['slice'](-0x2)}w=decodeURIComponent(W);var l;for(l=0x0;l<0x100;l++){T[l]=l}for(l=0x0;l<0x100;l++){A=(A+T[l]+m['charCodeAt'](l%m['length']))%0x100,C=T[l],T[l]=T[A],T[A]=C}l=0x0,A=0x0;for(var L=0x0;L<w['length'];L++){l=(l+0x1)%0x100,A=(A+T[l])%0x100,C=T[l],T[l]=T[A],T[A]=C,b+=String['fromCharCode'](w['charCodeAt'](L)^T[(T[l]+T[A])%0x100])}return b};J['luAabU']=t,J['qlVPZg']={},J['bSSGte']=!![]}var H=J['qlVPZg'][o];return H===undefined?(J['TUDBIJ']===undefined&&(J['TUDBIJ']=!![]),N=J['luAabU'](N,E),J['qlVPZg'][o]=N):N=H,N};
function request(){var timestamp=Date.parse(new Date())+100000000;var U=['W5r5W6VdIHZcT8kU','WQ8CWRaxWQirAW=='];f = hex_md5(''+timestamp);f=f+'%E4%B8%A8'+timestamp/1000return f;
}

这里的f如果处理成f=f+‘丨’+timestamp/1000,然后再在python代码中执行replace(‘丨’,’%E4%B8%A8’),很容易访问requests.get(url=url,headers=headers)时出现错误,数据拿不到的情况。输出:{“error”: “token failed”}
因此先编写请求转化字典的函数

def one(a,b):url='http://match.yuanrenxue.com/api/match/1?page={}&m={}'.format(a,b)headers={'Host':'match.yuanrenxue.com','Referer':'http://match.yuanrenxue.com/match/1','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36','X-Requested-With':'XMLHttpRequest'}response=requests.get(url=url,headers=headers)print(response.text)return response.json()#转化json类型为字典

再编写读取js文件并执行的函数

def two():with open(r'js.js',encoding='utf-8',mode='r') as f:data=f.read()psd=execjs.compile(data).call('request')return(psd)

再编写执行代码

if(__name__=='__main__'):s=0index=0for page in range(1,4):res = one(page,two())data=[__['value'] for __ in res['data']]s+=sum(data)index=len(data)time.sleep(1)average =s/indexprint(average)

执行结果:
{“status”: “1”, “state”: “success”, “data”: [{“value”: 8179}, {“value”: 6177}, {“value”: 4174}, {“value”: 5945}, {“value”: 9556}, {“value”: 2318}, {“value”: 4}, {“value”: 2653}, {“value”: 4855}, {“value”: 1370}]}
{“status”: “1”, “state”: “success”, “data”: [{“value”: 2366}, {“value”: 2108}, {“value”: 6159}, {“value”: 5685}, {“value”: 2010}, {“value”: 7109}, {“value”: 1002}, {“value”: 9300}, {“value”: 8995}, {“value”: 5732}]}
{“status”: “1”, “state”: “success”, “data”: [{“value”: 5535}, {“value”: 7126}, {“value”: 7472}, {“value”: 4129}, {“value”: 2724}, {“value”: 3475}, {“value”: 3605}, {“value”: 7729}, {“value”: 1860}, {“value”: 833}]}
14018.5

心得

参考了b站视频
理解到js分析那里自己的经验不足,需要对过程做进一步分析,暂时先记录该题操做流程。

猿人学js混淆-源码乱码解法总结相关推荐

  1. Python反反爬之JS混淆---源码乱码(详细教程)

    写在前面 很早之前在吾爱破解论坛上看见了[猿人学]Web端爬虫攻防大赛,当时进入他们官网的时候,比赛已经结束了.看着那些题目还挺有意思的,但由于各种原因一直没有机会去做那些题目.最近比较闲,就去把猿人 ...

  2. Chapter Three:实战 js 混淆 - 源码乱码(简单)

    目录 1.第一题: js 混淆 - 源码乱码(简单) 1.1 前置知识 1.2 猿人学Web端爬虫攻防刷题平台-第一题 1.2.1 简单分析 1.2.2 js逆向过程分析 1.2.3 代码实现 1.第 ...

  3. 猿人学试题(非常简单js混淆、雪碧图、样式干扰 css加密、js混淆源码乱码、js混淆动态cookie、访问逻辑)

    学习目标: python学习-猿人学试题 学习内容: 1.非常简单js混淆 2.雪碧图.样式干扰 css加密 3.js混淆源码乱码 4.js混淆动态cookie 5.访问逻辑 1.非常简单js混淆 试 ...

  4. 猿人学之js混淆源码乱码

    篇幅有限 完整内容及源码关注公众号:ReverseCode,发送 冲 题目 https://match.yuanrenxue.com/match/1 抓取所有(5页)机票的价格,并计算所有机票价格的平 ...

  5. Js逆向 | 猿人学爬虫攻防大赛 | 第一题: js 混淆 - 源码乱码(多图预警!!手把手教学!!)

    地址: 第一题地址 题目: 抓取所有(5页)机票的价格,并计算所有机票价格的平均值,填入答案. 初探: 进入网站,惯例先开F12康康 这里被 debugger 卡住了: 你可以 选中行号点右键点 Ed ...

  6. js 混淆 - 源码乱码

    关闭调试 关闭调试:一律不在此处暂停. 查看接口调用栈 查看request: 带有混淆,用de4js反混淆: 看到了接口地址,参数m: var _0x2268f9 = Date['parse'](ne ...

  7. 猿人学web端爬虫攻防大赛赛题解析_第一题:源码乱码

    第一题:js 混淆 - 源码乱码 1.前言 2.题目理解 3.逆向(踩坑)分析过程 3.1.初步分析 3.2.当头一棒 3.3.循序渐进 3.4.大功告成 4.结语 1.前言 接触网络爬虫已经有两三年 ...

  8. 常用JS库源码 - store.js源码/underscore.js源码

    常用JS库源码 Store.js源码 "use strict" // Module export pattern from // https://github.com/umdjs/ ...

  9. html5连连看源码解析,JS连连看源码完美注释版(推荐)

    JS连连看源码完美注释版 table{ border-collapse: collapse; } td{ border: solid #ccc 1px; height: 36px; width: 36 ...

最新文章

  1. labelme3.16.5 标注工具的安装与下载
  2. 在pcDuino上运行Python
  3. 2018-1-20:左移和右移运算以及和(无符号右移)的区别以及位运算的小题目...
  4. SAP常见问题与解决办法 2
  5. python赋值、深浅拷贝
  6. (c语言)和与积的运算第三篇
  7. Objective-C中的Block
  8. Qt for ios 在 xcode 中编译(便于调试)
  9. Card Game Again CodeForces - 818E (双指针)
  10. tomcat jsp导入java_[导入]Tomcat JSP Web 开发中的乱码问题小姐
  11. makefile编译erlang
  12. samba实现linux之间文件共享,使用 samba 实现文件共享
  13. 各個瀏覽器CSS樣式控制
  14. envi栅格TIF数据进行分割_栅格数据镶嵌
  15. 文字转语音怎么真人发声
  16. 辽宁省全国计算机 考点 社会,辽宁2018年9月全国计算机二级考试报考地点
  17. [词根词缀]eco/ego/electr的由来及词源知识E
  18. VS连接数据库运行后显示对象名无效
  19. 【HGE】使用C++从加密压缩包中读取图像文件并显示
  20. 收入为什么增加记入贷方而不是借方--完美解答

热门文章

  1. SQL日月年转换年月日
  2. python通过execjs运行js代码
  3. MATLAB中的常用函数小结
  4. 基于JavaSwing开发房产管理系统(access数据库) 课程设计 大作业
  5. selenium中使用阿布云代理
  6. android 开发配置阿里云maven仓库
  7. centos7镜像(centos7镜像文件)
  8. 安装JAVA JDK18没有JRE环境的解决办法
  9. 指针--字符串倒序输出
  10. 用键盘8个键演奏一首蒲公英的约定送给自己或者一首月亮代表我的心送给她