补充js知识:
(1)arguments是一个对应于传递给函数的参数的类数组对象。
arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。
(2)对函数表达式加上(),是可以直接调用的? 但是如果是对声明式的后部加上()则是会被编译器忽略。 var fn2 = function(){}();//对,就是这样 而平常的function(){}则是一种声明式,如果加上()括号后,则会被编译器认为是函数表达式,(加上+-号都可以),从而可以用()来直接调用.
(function(a){})(1)相对与在执行之前赋值给a。
function(){}()是一种立即执行函数的写法,即IIFE等设计模式。这种函数在函数定义的地方就直接执行了。
!function(){}()写法和(function(){})()是相同的 ①函数后的();表示要执行这个函数;
②而();要求前面必须是一个表达式。(最后有js表达式的定义)。
③所以“!”的作用是将function(){}函数体转为一个函数表达式。 ?
第一步:从栈堆找到密码传输的初始栈堆,发现密码属性是.password
第二部:搜素并下断点,看时候能断住,并且是没加密之前(有个设想,就是所有函数arguement都发送console,然后观测值的产生,但怕值太多)
第三步,去跟值,并确定
function re(e) {
return e % 32;
}
function oe(e) {
return 24 - e % 32;
}
function ne(e, t) {
for (var n = [], r = t ? re : oe, o = 0, i = 8 * e.length; o < i; o += 8)
n[o >> 5] |= (255 & e.charCodeAt(o / 8)) << r(o);
return n;
}
function $(e, t, n, r, o, i) {
return q((i = q(q(t, e), q(r, i))) << o | i >>> 32 - o, n);
}
function J(e, t, n, r, o, i, a) {
return $(t & n | ~t & r, e, t, o, i, a)
}
function Z(e, t, n, r, o, i, a) {
return $(t & r | n & ~r, e, t, o, i, a)
}
function ee(e, t, n, r, o, i, a) {
return $(t ^ n ^ r, e, t, o, i, a)
}
function te(e, t, n, r, o, i, a) {
return $(n ^ (t | ~r), e, t, o, i, a)
}
function q(e, t) {
var n = (65535 & e) + (65535 & t);
return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n
}
var a=['909522486','3552822']
function cc(e, t) {
e[t >> 5] |= 128 << t % 32;
e[14 + (t + 64 >>> 9 << 4)] = t;
for (var n, r, o, i, a = 1732584193, c = -271733879, l = -1732584194, u = 271733878, s = 0, f = e.length; s < f; s += 16){
a = J(n = a, r = c, o = l, i = u, e[s + 0], 7, -680876936);
u = J(u, a, c, l, e[s + 1], 12, -389564586);
l = J(l, u, a, c, e[s + 2], 17, 606105819);
c = J(c, l, u, a, e[s + 3], 22, -1044525330);
a = J(a, c, l, u, e[s + 4], 7, -176418897);
u = J(u, a, c, l, e[s + 5], 12, 1200080426);
l = J(l, u, a, c, e[s + 6], 17, -1473231341);
c = J(c, l, u, a, e[s + 7], 22, -45705983);
a = J(a, c, l, u, e[s + 8], 7, 1770035416);
u = J(u, a, c, l, e[s + 9], 12, -1958414417);
l = J(l, u, a, c, e[s + 10], 17, -42063);
c = J(c, l, u, a, e[s + 11], 22, -1990404162);
a = J(a, c, l, u, e[s + 12], 7, 1804603682);
u = J(u, a, c, l, e[s + 13], 12, -40341101);
l = J(l, u, a, c, e[s + 14], 17, -1502002290);
c = J(c, l, u, a, e[s + 15], 22, 1236535329);
a = Z(a, c, l, u, e[s + 1], 5, -165796510);
u = Z(u, a, c, l, e[s + 6], 9, -1069501632);
l = Z(l, u, a, c, e[s + 11], 14, 643717713);
c = Z(c, l, u, a, e[s + 0], 20, -373897302);
a = Z(a, c, l, u, e[s + 5], 5, -701558691);
u = Z(u, a, c, l, e[s + 10], 9, 38016083);
l = Z(l, u, a, c, e[s + 15], 14, -660478335);
c = Z(c, l, u, a, e[s + 4], 20, -405537848);
a = Z(a, c, l, u, e[s + 9], 5, 568446438);
u = Z(u, a, c, l, e[s + 14], 9, -1019803690);
l = Z(l, u, a, c, e[s + 3], 14, -187363961);
c = Z(c, l, u, a, e[s + 8], 20, 1163531501);
a = Z(a, c, l, u, e[s + 13], 5, -1444681467);
u = Z(u, a, c, l, e[s + 2], 9, -51403784);
l = Z(l, u, a, c, e[s + 7], 14, 1735328473);
c = Z(c, l, u, a, e[s + 12], 20, -1926607734);
a = ee(a, c, l, u, e[s + 5], 4, -378558);
u = ee(u, a, c, l, e[s + 8], 11, -2022574463);
l = ee(l, u, a, c, e[s + 11], 16, 1839030562);
c = ee(c, l, u, a, e[s + 14], 23, -35309556);
a = ee(a, c, l, u, e[s + 1], 4, -1530992060);
u = ee(u, a, c, l, e[s + 4], 11, 1272893353);
l = ee(l, u, a, c, e[s + 7], 16, -155497632);
c = ee(c, l, u, a, e[s + 10], 23, -1094730640);
a = ee(a, c, l, u, e[s + 13], 4, 681279174);
u = ee(u, a, c, l, e[s + 0], 11, -358537222);
l = ee(l, u, a, c, e[s + 3], 16, -722521979);
c = ee(c, l, u, a, e[s + 6], 23, 76029189);
a = ee(a, c, l, u, e[s + 9], 4, -640364487);
u = ee(u, a, c, l, e[s + 12], 11, -421815835);
l = ee(l, u, a, c, e[s + 15], 16, 530742520);
c = ee(c, l, u, a, e[s + 2], 23, -995338651);
a = te(a, c, l, u, e[s + 0], 6, -198630844);
u = te(u, a, c, l, e[s + 7], 10, 1126891415);
l = te(l, u, a, c, e[s + 14], 15, -1416354905);
c = te(c, l, u, a, e[s + 5], 21, -57434055);
a = te(a, c, l, u, e[s + 12], 6, 1700485571);
u = te(u, a, c, l, e[s + 3], 10, -1894986606);
l = te(l, u, a, c, e[s + 10], 15, -1051523);
c = te(c, l, u, a, e[s + 1], 21, -2054922799);
a = te(a, c, l, u, e[s + 8], 6, 1873313359);
u = te(u, a, c, l, e[s + 15], 10, -30611744);
l = te(l, u, a, c, e[s + 6], 15, -1560198380);
c = te(c, l, u, a, e[s + 13], 21, 1309151649);
a = te(a, c, l, u, e[s + 4], 6, -145523070);
u = te(u, a, c, l, e[s + 11], 10, -1120210379);
l = te(l, u, a, c, e[s + 2], 15, 718787259);
c = te(c, l, u, a, e[s + 9], 21, -343485551);
a = q(a, n);
c = q(c, r);
l = q(l, o);
u = q(u, i);
}
return [a, c, l, u]
}
H = "0123456789abcdef";
function G(e) {
return e % 4;
}
function Q(e) {
return 3 - e % 4;
}
function dd(e, t) {
for (var n = [], r = t ? G : Q, o = 0, i = 4 * e.length; o < i; o++){
n.push(H.charAt(e[o >> 2] >> 8 * r(o) + 4 & 15) + H.charAt(e[o >> 2] >> 8 * r(o) & 15));
}
return n.join("")
}
?调用方法:
dd(cc(ne("6666666",!0),56),!0)
|