网址:统一身份认证平台
找到登陆包,搜索找到加密位置。
找到加密位置,打上断点
分析,E就是加密结果
进入n.i函数,就是t.i,看一下这个函数,传一个值,然后不变的返回,所以没什么意义
因此直接看u.c,很明显的webpack,找到前面定义u的位置,打上断点,释放其他断点,然后刷新页面。
进入n,发现它是一个完整的自执行函数 。总共有7万多行,我们只复制加载器,导出加载器,删除初始化。改成字典格式。
补充细枝末节,接下来就是补充函数模块。
缺少45模块,回到初始n(45) ,找到函数复制。可以发现,这是在子文件中
整体结果展示。
完整代码:
var yangxin;
window=global;
!function(e) {
function t(n) {
console.log(n)
if (r[n])
return r[n].exports;
var o = r[n] = {
i: n,
l: !1,
exports: {}
};
return e[n].call(o.exports, o, o.exports, t),
o.l = !0,
o.exports
}
yangxin=t
var n = window.webpackJsonp;
window.webpackJsonp = function(r, i, a) {
for (var c, u, l, s = 0, f = []; s < r.length; s++)
u = r[s],
o[u] && f.push(o[u][0]),
o[u] = 0;
for (c in i)
Object.prototype.hasOwnProperty.call(i, c) && (e[c] = i[c]);
for (n && n(r, i, a); f.length; )
f.shift()();
if (a)
for (s = 0; s < a.length; s++)
l = t(t.s = a[s]);
return l
}
;
var r = {}
, o = {
1: 0
};
t.e = function(e) {
function n() {
c.onerror = c.onload = null,
clearTimeout(u);
var t = o[e];
0 !== t && (t && t[1](new Error("Loading chunk " + e + " failed.")),
o[e] = void 0)
}
var r = o[e];
if (0 === r)
return new Promise(function(e) {
e()
}
);
if (r)
return r[2];
var i = new Promise(function(t, n) {
r = o[e] = [t, n]
}
);
r[2] = i;
var a = document.getElementsByTagName("head")[0]
, c = document.createElement("script");
c.type = "text/javascript",
c.charset = "utf-8",
c.async = !0,
c.timeout = 12e4,
t.nc && c.setAttribute("nonce", t.nc),
c.src = t.p + "" + e + "." + {
0: "9cb4f940d5df451f543d"
}[e] + ".js";
var u = setTimeout(n, 12e4);
return c.onerror = c.onload = n,
a.appendChild(c),
i
}
,
t.m = e,
t.c = r,
t.i = function(e) {
return e
}
,
t.d = function(e, n, r) {
t.o(e, n) || Object.defineProperty(e, n, {
configurable: !1,
enumerable: !0,
get: r
})
}
,
t.n = function(e) {
var n = e && e.__esModule ? function() {
return e.default
}
: function() {
return e
}
;
return t.d(n, "a", n),
n
}
,
t.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}
,
t.p = "/",
t.oe = function(e) {
throw console.error(e),
e
}
}({
45: function(e, t, n) {
"use strict";
function a(e) {
U = e,
R = new Array(U);
for (var t = 0; t < R.length; t++)
R[t] = 0;
q = new i,
F = new i,
F.digits[0] = 1
}
function i(e) {
this.digits = "boolean" == typeof e && 1 == e ? null : R.slice(0),
this.isNeg = !1
}
function r(e) {
var t = new i(!0);
return t.digits = e.digits.slice(0),
t.isNeg = e.isNeg,
t
}
function o(e) {
var t = new i;
t.isNeg = e < 0,
e = Math.abs(e);
for (var n = 0; e > 0; )
t.digits[n++] = e & X,
e = Math.floor(e / j);
return t
}
function s(e) {
for (var t = "", n = e.length - 1; n > -1; --n)
t += e.charAt(n);
return t
}
function c(e, t) {
var n = new i;
n.digits[0] = t;
for (var a = C(e, n), r = H[a[1].digits[0]]; 1 == k(a[0], q); )
a = C(a[0], n),
digit = a[1].digits[0],
r += H[a[1].digits[0]];
return (e.isNeg ? "-" : "") + s(r)
}
function l(e) {
for (var t = "", n = 0; n < 4; ++n)
t += J[15 & e],
e >>>= 4;
return s(t)
}
function u(e) {
for (var t = "", n = (h(e),
h(e)); n > -1; --n)
t += l(e.digits[n]);
return t
}
function p(e) {
return e >= 48 && e <= 57 ? e - 48 : e >= 65 && e <= 90 ? 10 + e - 65 : e >= 97 && e <= 122 ? 10 + e - 97 : 0
}
function d(e) {
for (var t = 0, n = Math.min(e.length, 4), a = 0; a < n; ++a)
t <<= 4,
t |= p(e.charCodeAt(a));
return t
}
function m(e) {
for (var t = new i, n = e.length, a = n, r = 0; a > 0; a -= 4,
++r)
t.digits[r] = d(e.substr(Math.max(a - 4, 0), Math.min(a, 4)));
return t
}
function _(e, t) {
var n = "-" == e.charAt(0)
, a = n ? 1 : 0
, r = new i
, o = new i;
o.digits[0] = 1;
for (var s = e.length - 1; s >= a; s--) {
r = f(r, b(o, p(e.charCodeAt(s)))),
o = b(o, t)
}
return r.isNeg = n,
r
}
function f(e, t) {
var n;
if (e.isNeg != t.isNeg)
t.isNeg = !t.isNeg,
n = g(e, t),
t.isNeg = !t.isNeg;
else {
n = new i;
for (var a, r = 0, o = 0; o < e.digits.length; ++o)
a = e.digits[o] + t.digits[o] + r,
n.digits[o] = a % j,
r = Number(a >= j);
n.isNeg = e.isNeg
}
return n
}
function g(e, t) {
var n;
if (e.isNeg != t.isNeg)
t.isNeg = !t.isNeg,
n = f(e, t),
t.isNeg = !t.isNeg;
else {
n = new i;
var a, r;
r = 0;
for (var o = 0; o < e.digits.length; ++o)
a = e.digits[o] - t.digits[o] + r,
n.digits[o] = a % j,
n.digits[o] < 0 && (n.digits[o] += j),
r = 0 - Number(a < 0);
if (-1 == r) {
r = 0;
for (var o = 0; o < e.digits.length; ++o)
a = 0 - n.digits[o] + r,
n.digits[o] = a % j,
n.digits[o] < 0 && (n.digits[o] += j),
r = 0 - Number(a < 0);
n.isNeg = !e.isNeg
} else
n.isNeg = e.isNeg
}
return n
}
function h(e) {
for (var t = e.digits.length - 1; t > 0 && 0 == e.digits[t]; )
--t;
return t
}
function v(e) {
var t, n = h(e), a = e.digits[n], i = (n + 1) * B;
for (t = i; t > i - B && 0 == (32768 & a); --t)
a <<= 1;
return t
}
function E(e, t) {
for (var n, a, r, o = new i, s = h(e), c = h(t), l = 0; l <= c; ++l) {
n = 0,
r = l;
for (var u = 0; u <= s; ++u,
++r)
a = o.digits[r] + e.digits[u] * t.digits[l] + n,
o.digits[r] = a & X,
n = a >>> K;
o.digits[l + s + 1] = n
}
return o.isNeg = e.isNeg != t.isNeg,
o
}
function b(e, t) {
var n, a, r, o = new i;
n = h(e),
a = 0;
for (var s = 0; s <= n; ++s)
r = o.digits[s] + e.digits[s] * t + a,
o.digits[s] = r & X,
a = r >>> K;
return o.digits[1 + n] = a,
o
}
function y(e, t, n, a, i) {
for (var r = Math.min(t + i, e.length), o = t, s = a; o < r; ++o,
++s)
n[s] = e[o]
}
function w(e, t) {
var n = Math.floor(t / B)
, a = new i;
y(e.digits, 0, a.digits, n, a.digits.length - n);
for (var r = t % B, o = B - r, s = a.digits.length - 1, c = s - 1; s > 0; --s,
--c)
a.digits[s] = a.digits[s] << r & X | (a.digits[c] & V[r]) >>> o;
return a.digits[0] = a.digits[s] << r & X,
a.isNeg = e.isNeg,
a
}
function T(e, t) {
var n = Math.floor(t / B)
, a = new i;
y(e.digits, n, a.digits, 0, e.digits.length - n);
for (var r = t % B, o = B - r, s = 0, c = s + 1; s < a.digits.length - 1; ++s,
++c)
a.digits[s] = a.digits[s] >>> r | (a.digits[c] & Y[r]) << o;
return a.digits[a.digits.length - 1] >>>= r,
a.isNeg = e.isNeg,
a
}
function S(e, t) {
var n = new i;
return y(e.digits, 0, n.digits, t, n.digits.length - t),
n
}
function x(e, t) {
var n = new i;
return y(e.digits, t, n.digits, 0, n.digits.length - t),
n
}
function O(e, t) {
var n = new i;
return y(e.digits, 0, n.digits, 0, t),
n
}
function k(e, t) {
if (e.isNeg != t.isNeg)
return 1 - 2 * Number(e.isNeg);
for (var n = e.digits.length - 1; n >= 0; --n)
if (e.digits[n] != t.digits[n])
return e.isNeg ? 1 - 2 * Number(e.digits[n] > t.digits[n]) : 1 - 2 * Number(e.digits[n] < t.digits[n]);
return 0
}
function C(e, t) {
var n, a, o = v(e), s = v(t), c = t.isNeg;
if (o < s)
return e.isNeg ? (n = r(F),
n.isNeg = !t.isNeg,
e.isNeg = !1,
t.isNeg = !1,
a = g(t, e),
e.isNeg = !0,
t.isNeg = c) : (n = new i,
a = r(e)),
new Array(n,a);
n = new i,
a = e;
for (var l = Math.ceil(s / B) - 1, u = 0; t.digits[l] < G; )
t = w(t, 1),
++u,
++s,
l = Math.ceil(s / B) - 1;
a = w(a, u),
o += u;
for (var p = Math.ceil(o / B) - 1, d = S(t, p - l); -1 != k(a, d); )
++n.digits[p - l],
a = g(a, d);
for (var m = p; m > l; --m) {
var _ = m >= a.digits.length ? 0 : a.digits[m]
, E = m - 1 >= a.digits.length ? 0 : a.digits[m - 1]
, y = m - 2 >= a.digits.length ? 0 : a.digits[m - 2]
, x = l >= t.digits.length ? 0 : t.digits[l]
, O = l - 1 >= t.digits.length ? 0 : t.digits[l - 1];
n.digits[m - l - 1] = _ == x ? X : Math.floor((_ * j + E) / x);
for (var C = n.digits[m - l - 1] * (x * j + O), N = _ * z + (E * j + y); C > N; )
--n.digits[m - l - 1],
C = n.digits[m - l - 1] * (x * j | O),
N = _ * j * j + (E * j + y);
d = S(t, m - l - 1),
a = g(a, b(d, n.digits[m - l - 1])),
a.isNeg && (a = f(a, d),
--n.digits[m - l - 1])
}
return a = T(a, u),
n.isNeg = e.isNeg != c,
e.isNeg && (n = c ? f(n, F) : g(n, F),
t = T(t, u),
a = g(t, a)),
0 == a.digits[0] && 0 == h(a) && (a.isNeg = !1),
new Array(n,a)
}
function N(e, t) {
return C(e, t)[0]
}
function I(e) {
this.modulus = r(e),
this.k = h(this.modulus) + 1;
var t = new i;
t.digits[2 * this.k] = 1,
this.mu = N(t, this.modulus),
this.bkplus1 = new i,
this.bkplus1.digits[this.k + 1] = 1,
this.modulo = P,
this.multiplyMod = A,
this.powMod = W
}
function P(e) {
var t = x(e, this.k - 1)
, n = E(t, this.mu)
, a = x(n, this.k + 1)
, i = O(e, this.k + 1)
, r = E(a, this.modulus)
, o = O(r, this.k + 1)
, s = g(i, o);
s.isNeg && (s = f(s, this.bkplus1));
for (var c = k(s, this.modulus) >= 0; c; )
s = g(s, this.modulus),
c = k(s, this.modulus) >= 0;
return s
}
function A(e, t) {
var n = E(e, t);
return this.modulo(n)
}
function W(e, t) {
var n = new i;
n.digits[0] = 1;
for (var a = e, r = t; ; ) {
if (0 != (1 & r.digits[0]) && (n = this.multiplyMod(n, a)),
r = T(r, 1),
0 == r.digits[0] && 0 == h(r))
break;
a = this.multiplyMod(a, a)
}
return n
}
function M(e, t, n) {
this.e = m(e),
this.d = m(t),
this.m = m(n),
this.chunkSize = 2 * h(this.m),
this.radix = 16,
this.barrett = new I(this.m)
}
function D(e, t, n) {
return new M(e,t,n)
}
function L(e, t) {
for (var n = new Array, a = t.length, r = 0; r < a; )
n[r] = t.charCodeAt(r),
r++;
for (; n.length % e.chunkSize != 0; )
n[r++] = 0;
var o, s, l, p = n.length, d = "";
for (r = 0; r < p; r += e.chunkSize) {
for (l = new i,
o = 0,
s = r; s < r + e.chunkSize; ++o)
l.digits[o] = n[s++],
l.digits[o] += n[s++] << 8;
var m = e.barrett.powMod(l, e.e);
d += (16 == e.radix ? u(m) : c(m, e.radix)) + " "
}
return d.substring(0, d.length - 1)
}
function Q(e, t) {
var n, a, i, r = t.split(" "), o = "";
for (n = 0; n < r.length; ++n) {
var s;
for (s = 16 == e.radix ? m(r[n]) : _(r[n], e.radix),
i = e.barrett.powMod(s, e.d),
a = 0; a <= h(i); ++a)
o += String.fromCharCode(255 & i.digits[a], i.digits[a] >> 8)
}
return o.charCodeAt(o.length - 1),
o
}
t.a = a,
t.b = D,
t.c = L,
t.d = Q;
var U, R, q, F, K = 16, B = K, j = 65536, G = j >>> 1, z = j * j, X = j - 1;
a(20);
var H = (o(1e15),
new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"))
, J = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")
, V = new Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535)
, Y = new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535)
},
})
u = yangxin(45)
u.a(131);
var password = '123456';
var b = u.b("010001", "", "00b5eeb166e069920e80bebd1fea4829d3d1f3216f2aabe79b6c47a3c18dcee5fd22c2e7ac519cab59198ece036dcf289ea8201e2a0b9ded307f8fb704136eaeb670286f5ad44e691005ba9ea5af04ada5367cd724b5a26fdb5120cc95b6431604bd219c6b7d83a6f8f24b43918ea988a76f93c333aa5a20991493d4eb1117e7b1")
function encrypted_pwd(b,password){
E = u.c(b, password)
return E
}
console.log(encrypted_pwd(b,password))