某妹游戏登录加密(webpack)

网址:aHR0cHM6Ly93d3cuZ205OS5jb20v

本文章仅作学习参考使用,不做其他使用。

输入登录密码,分析抓包看到如下

 全局搜索password,跟到加密位置下断点此时已经能看到加密信息了

然后跟进e.encode函数,这是已经能知晓是rsa加密了,并且发现密码拼接了时间戳

再次跟进:this.jsencrypt.encrypt这个函数,代码在网页不好分析,我们把所有代码保存到本地分析

这时把所有代码折叠起来,发现了webpack关键字样, 凡是最后图中这个标记的类型毫无疑问是webpack类型的。有时也是   }([   这种列表形式

 回到头部将加载器扣下来,以作为后续改写使用

 再次回到本地代码中搜索我们的关键字,定位到加密参数位置

 

一直不停的往上滑,直到我们定位到方法开始的位置,将标记的整个大方法全部扣取下来,并且放入到我们的刚才的加载器中,并且重新定义一下名字。

 

 回到我们最后断点的位置,将调用方法扣去下了,放入到我们的方法里面。因为这个方法并不多,不需要我们改写,这里直接用就行。并且也定义一个名字

 现在最主要的关键时刻来了,我们需要将webpack加载器给导出,并且知道他是怎么样调用的,图中这个三个标记的都指的是同一个函数。类似递归的作用。

知道这层含义,我们只需要稍微改写一下就能生成我们想要的的,定义一个全局变量_e,将i原本调用的4换成我们自己定义的名字:jsencrypt,在自己写一个调用的办法就可以了。

 

 然后放入浏览器中试跑一下,就知道结果了

第一次写webpack,文字如有不对,请大家指出来! 以下是全部代码。

var _e;
!function(t) {
	    var i = {};
    function e(s) {
        if (i[s])
            return i[s].exports;
        var n = i[s] = {
            exports: {},
            id: s,
            loaded: !1
        };
        return t[s].call(n.exports, n, n.exports, e),
        n.loaded = !0,
        n.exports
    }
	_e = e;
}({
	
	jsencrypt:function(t, e, i) {
        var s, n, r, s;
        s = function(t, e, i) {
            /*! JSEncrypt v2.3.1 | //npmcdn.com/jsencrypt@2.3.1/LICENSE.txt */
            !function(t, o) {
                r = [e],
                n = o,
                s = "function" == typeof n ? n.apply(e, r) : n,
                !(void 0 !== s && (i.exports = s))
            }(this, function(t) {
                function e(t, e, i) {
                    null != t && ("number" == typeof t ? this.fromNumber(t, e, i) : null == e && "string" != typeof t ? this.fromString(t, 256) : this.fromString(t, e))
                }
                function i() {
                    return new e(null)
                }
                function s(t, e, i, s, n, r) {
                    for (; --r >= 0; ) {
                        var o = e * this[t++] + i[s] + n;
                        n = Math.floor(o / 67108864),
                        i[s++] = 67108863 & o
                    }
                    return n
                }
                function n(t, e, i, s, n, r) {
                    for (var o = 32767 & e, a = e >> 15; --r >= 0; ) {
                        var c = 32767 & this[t]
                          , l = this[t++] >> 15
                          , u = a * c + l * o;
                        c = o * c + ((32767 & u) << 15) + i[s] + (1073741823 & n),
                        n = (c >>> 30) + (u >>> 15) + a * l + (n >>> 30),
                        i[s++] = 1073741823 & c
                    }
                    return n
                }
                function r(t, e, i, s, n, r) {
                    for (var o = 16383 & e, a = e >> 14; --r >= 0; ) {
                        var c = 16383 & this[t]
                          , l = this[t++] >> 14
                          , u = a * c + l * o;
                        c = o * c + ((16383 & u) << 14) + i[s] + n,
                        n = (c >> 28) + (u >> 14) + a * l,
                        i[s++] = 268435455 & c
                    }
                    return n
                }
                function o(t) {
                    return Te.charAt(t)
                }
                function a(t, e) {
                    var i = Ie[t.charCodeAt(e)];
                    return null == i ? -1 : i
                }
                function c(t) {
                    for (var e = this.t - 1; e >= 0; --e)
                        t[e] = this[e];
                    t.t = this.t,
                    t.s = this.s
                }
                function l(t) {
                    this.t = 1,
                    this.s = 0 > t ? -1 : 0,
                    t > 0 ? this[0] = t : -1 > t ? this[0] = t + this.DV : this.t = 0
                }
                function u(t) {
                    var e = i();
                    return e.fromInt(t),
                    e
                }
                function p(t, i) {
                    var s;
                    if (16 == i)
                        s = 4;
                    else if (8 == i)
                        s = 3;
                    else if (256 == i)
                        s = 8;
                    else if (2 == i)
                        s = 1;
                    else if (32 == i)
                        s = 5;
                    else {
                        if (4 != i)
                            return void this.fromRadix(t, i);
                        s = 2
                    }
                    this.t = 0,
                    this.s = 0;
                    for (var n = t.length, r = !1, o = 0; --n >= 0; ) {
                        var c = 8 == s ? 255 & t[n] : a(t, n);
                        0 > c ? "-" == t.charAt(n) && (r = !0) : (r = !1,
                        0 == o ? this[this.t++] = c : o + s > this.DB ? (this[this.t - 1] |= (c & (1 << this.DB - o) - 1) << o,
                        this[this.t++] = c >> this.DB - o) : this[this.t - 1] |= c << o,
                        o += s,
                        o >= this.DB && (o -= this.DB))
                    }
                    8 == s && 0 != (128 & t[0]) && (this.s = -1,
                    o > 0 && (this[this.t - 1] |= (1 << this.DB - o) - 1 << o)),
                    this.clamp(),
                    r && e.ZERO.subTo(this, this)
                }
                function d() {
                    for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t; )
                        --this.t
                }
                function h(t) {
                    if (this.s < 0)
                        return "-" + this.negate().toString(t);
                    var e;
                    if (16 == t)
                        e = 4;
                    else if (8 == t)
                        e = 3;
                    else if (2 == t)
                        e = 1;
                    else if (32 == t)
                        e = 5;
                    else {
                        if (4 != t)
                            return this.toRadix(t);
                        e = 2
                    }
                    var i, s = (1 << e) - 1, n = !1, r = "", a = this.t, c = this.DB - a * this.DB % e;
                    if (a-- > 0)
                        for (c < this.DB && (i = this[a] >> c) > 0 && (n = !0,
                        r = o(i)); a >= 0; )
                            e > c ? (i = (this[a] & (1 << c) - 1) << e - c,
                            i |= this[--a] >> (c += this.DB - e)) : (i = this[a] >> (c -= e) & s,
                            0 >= c && (c += this.DB,
                            --a)),
                            i > 0 && (n = !0),
                            n && (r += o(i));
                    return n ? r : "0"
                }
                function f() {
                    var t = i();
                    return e.ZERO.subTo(this, t),
                    t
                }
                function g() {
                    return this.s < 0 ? this.negate() : this
                }
                function m(t) {
                    var e = this.s - t.s;
                    if (0 != e)
                        return e;
                    var i = this.t;
                    if (e = i - t.t,
                    0 != e)
                        return this.s < 0 ? -e : e;
                    for (; --i >= 0; )
                        if (0 != (e = this[i] - t[i]))
                            return e;
                    return 0
                }
                function _(t) {
                    var e, i = 1;
                    return 0 != (e = t >>> 16) && (t = e,
                    i += 16),
                    0 != (e = t >> 8) && (t = e,
                    i += 8),
                    0 != (e = t >> 4) && (t = e,
                    i += 4),
                    0 != (e = t >> 2) && (t = e,
                    i += 2),
                    0 != (e = t >> 1) && (t = e,
                    i += 1),
                    i
                }
                function b() {
                    return this.t <= 0 ? 0 : this.DB * (this.t - 1) + _(this[this.t - 1] ^ this.s & this.DM)
                }
                function y(t, e) {
                    var i;
                    for (i = this.t - 1; i >= 0; --i)
                        e[i + t] = this[i];
                    for (i = t - 1; i >= 0; --i)
                        e[i] = 0;
                    e.t = this.t + t,
                    e.s = this.s
                }
                function w(t, e) {
                    for (var i = t; i < this.t; ++i)
                        e[i - t] = this[i];
                    e.t = Math.max(this.t - t, 0),
                    e.s = this.s
                }
                function k(t, e) {
                    var i, s = t % this.DB, n = this.DB - s, r = (1 << n) - 1, o = Math.floor(t / this.DB), a = this.s << s & this.DM;
                    for (i = this.t - 1; i >= 0; --i)
                        e[i + o + 1] = this[i] >> n | a,
                        a = (this[i] & r) << s;
                    for (i = o - 1; i >= 0; --i)
                        e[i] = 0;
                    e[o] = a,
                    e.t = this.t + o + 1,
                    e.s = this.s,
                    e.clamp()
                }
                function x(t, e) {
                    e.s = this.s;
                    var i = Math.floor(t / this.DB);
                    if (i >= this.t)
                        return void (e.t = 0);
                    var s = t % this.DB
                      , n = this.DB - s
                      , r = (1 << s) - 1;
                    e[0] = this[i] >> s;
                    for (var o = i + 1; o < this.t; ++o)
                        e[o - i - 1] |= (this[o] & r) << n,
                        e[o - i] = this[o] >> s;
                    s > 0 && (e[this.t - i - 1] |= (this.s & r) << n),
                    e.t = this.t - i,
                    e.clamp()
                }
                function D(t, e) {
                    for (var i = 0, s = 0, n = Math.min(t.t, this.t); n > i; )
                        s += this[i] - t[i],
                        e[i++] = s & this.DM,
                        s >>= this.DB;
                    if (t.t < this.t) {
                        for (s -= t.s; i < this.t; )
                            s += this[i],
                            e[i++] = s & this.DM,
                            s >>= this.DB;
                        s += this.s
                    } else {
                        for (s += this.s; i < t.t; )
                            s -= t[i],
                            e[i++] = s & this.DM,
                            s >>= this.DB;
                        s -= t.s
                    }
                    e.s = 0 > s ? -1 : 0,
                    -1 > s ? e[i++] = this.DV + s : s > 0 && (e[i++] = s),
                    e.t = i,
                    e.clamp()
                }
                function S(t, i) {
                    var s = this.abs()
                      , n = t.abs()
                      , r = s.t;
                    for (i.t = r + n.t; --r >= 0; )
                        i[r] = 0;
                    for (r = 0; r < n.t; ++r)
                        i[r + s.t] = s.am(0, n[r], i, r, 0, s.t);
                    i.s = 0,
                    i.clamp(),
                    this.s != t.s && e.ZERO.subTo(i, i)
                }
                function C(t) {
                    for (var e = this.abs(), i = t.t = 2 * e.t; --i >= 0; )
                        t[i] = 0;
                    for (i = 0; i < e.t - 1; ++i) {
                        var s = e.am(i, e[i], t, 2 * i, 0, 1);
                        (t[i + e.t] += e.am(i + 1, 2 * e[i], t, 2 * i + 1, s, e.t - i - 1)) >= e.DV && (t[i + e.t] -= e.DV,
                        t[i + e.t + 1] = 1)
                    }
                    t.t > 0 && (t[t.t - 1] += e.am(i, e[i], t, 2 * i, 0, 1)),
                    t.s = 0,
                    t.clamp()
                }
                function T(t, s, n) {
                    var r = t.abs();
                    if (!(r.t <= 0)) {
                        var o = this.abs();
                        if (o.t < r.t)
                            return null != s && s.fromInt(0),
                            void (null != n && this.copyTo(n));
                        null == n && (n = i());
                        var a = i()
                          , c = this.s
                          , l = t.s
                          , u = this.DB - _(r[r.t - 1]);
                        u > 0 ? (r.lShiftTo(u, a),
                        o.lShiftTo(u, n)) : (r.copyTo(a),
                        o.copyTo(n));
                        var p = a.t
                          , d = a[p - 1];
                        if (0 != d) {
                            var h = d * (1 << this.F1) + (p > 1 ? a[p - 2] >> this.F2 : 0)
                              , f = this.FV / h
                              , g = (1 << this.F1) / h
                              , m = 1 << this.F2
                              , v = n.t
                              , b = v - p
                              , y = null == s ? i() : s;
                            for (a.dlShiftTo(b, y),
                            n.compareTo(y) >= 0 && (n[n.t++] = 1,
                            n.subTo(y, n)),
                            e.ONE.dlShiftTo(p, y),
                            y.subTo(a, a); a.t < p; )
                                a[a.t++] = 0;
                            for (; --b >= 0; ) {
                                var w = n[--v] == d ? this.DM : Math.floor(n[v] * f + (n[v - 1] + m) * g);
                                if ((n[v] += a.am(0, w, n, b, 0, p)) < w)
                                    for (a.dlShiftTo(b, y),
                                    n.subTo(y, n); n[v] < --w; )
                                        n.subTo(y, n)
                            }
                            null != s && (n.drShiftTo(p, s),
                            c != l && e.ZERO.subTo(s, s)),
                            n.t = p,
                            n.clamp(),
                            u > 0 && n.rShiftTo(u, n),
                            0 > c && e.ZERO.subTo(n, n)
                        }
                    }
                }
                function I(t) {
                    var s = i();
                    return this.abs().divRemTo(t, null, s),
                    this.s < 0 && s.compareTo(e.ZERO) > 0 && t.subTo(s, s),
                    s
                }
                function $(t) {
                    this.m = t
                }
                function P(t) {
                    return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t
                }
                function R(t) {
                    return t
                }
                function A(t) {
                    t.divRemTo(this.m, null, t)
                }
                function E(t, e, i) {
                    t.multiplyTo(e, i),
                    this.reduce(i)
                }
                function M(t, e) {
                    t.squareTo(e),
                    this.reduce(e)
                }
                function N() {
                    if (this.t < 1)
                        return 0;
                    var t = this[0];
                    if (0 == (1 & t))
                        return 0;
                    var e = 3 & t;
                    return e = e * (2 - (15 & t) * e) & 15,
                    e = e * (2 - (255 & t) * e) & 255,
                    e = e * (2 - ((65535 & t) * e & 65535)) & 65535,
                    e = e * (2 - t * e % this.DV) % this.DV,
                    e > 0 ? this.DV - e : -e
                }
                function O(t) {
                    this.m = t,
                    this.mp = t.invDigit(),
                    this.mpl = 32767 & this.mp,
                    this.mph = this.mp >> 15,
                    this.um = (1 << t.DB - 15) - 1,
                    this.mt2 = 2 * t.t
                }
                function B(t) {
                    var s = i();
                    return t.abs().dlShiftTo(this.m.t, s),
                    s.divRemTo(this.m, null, s),
                    t.s < 0 && s.compareTo(e.ZERO) > 0 && this.m.subTo(s, s),
                    s
                }
                function j(t) {
                    var e = i();
                    return t.copyTo(e),
                    this.reduce(e),
                    e
                }
                function L(t) {
                    for (; t.t <= this.mt2; )
                        t[t.t++] = 0;
                    for (var e = 0; e < this.m.t; ++e) {
                        var i = 32767 & t[e]
                          , s = i * this.mpl + ((i * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
                        for (i = e + this.m.t,
                        t[i] += this.m.am(0, s, t, e, 0, this.m.t); t[i] >= t.DV; )
                            t[i] -= t.DV,
                            t[++i]++
                    }
                    t.clamp(),
                    t.drShiftTo(this.m.t, t),
                    t.compareTo(this.m) >= 0 && t.subTo(this.m, t)
                }
                function F(t, e) {
                    t.squareTo(e),
                    this.reduce(e)
                }
                function K(t, e, i) {
                    t.multiplyTo(e, i),
                    this.reduce(i)
                }
                function U() {
                    return 0 == (this.t > 0 ? 1 & this[0] : this.s)
                }
                function V(t, s) {
                    if (t > 4294967295 || 1 > t)
                        return e.ONE;
                    var n = i()
                      , r = i()
                      , o = s.convert(this)
                      , a = _(t) - 1;
                    for (o.copyTo(n); --a >= 0; )
                        if (s.sqrTo(n, r),
                        (t & 1 << a) > 0)
                            s.mulTo(r, o, n);
                        else {
                            var c = n;
                            n = r,
                            r = c
                        }
                    return s.revert(n)
                }
                function z(t, e) {
                    var i;
                    return i = 256 > t || e.isEven() ? new $(e) : new O(e),
                    this.exp(t, i)
                }
                function H() {
                    var t = i();
                    return this.copyTo(t),
                    t
                }
                function q() {
                    if (this.s < 0) {
                        if (1 == this.t)
                            return this[0] - this.DV;
                        if (0 == this.t)
                            return -1
                    } else {
                        if (1 == this.t)
                            return this[0];
                        if (0 == this.t)
                            return 0
                    }
                    return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]
                }
                function J() {
                    return 0 == this.t ? this.s : this[0] << 24 >> 24
                }
                function G() {
                    return 0 == this.t ? this.s : this[0] << 16 >> 16
                }
                function Y(t) {
                    return Math.floor(Math.LN2 * this.DB / Math.log(t))
                }
                function W() {
                    return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1
                }
                function Z(t) {
                    if (null == t && (t = 10),
                    0 == this.signum() || 2 > t || t > 36)
                        return "0";
                    var e = this.chunkSize(t)
                      , s = Math.pow(t, e)
                      , n = u(s)
                      , r = i()
                      , o = i()
                      , a = "";
                    for (this.divRemTo(n, r, o); r.signum() > 0; )
                        a = (s + o.intValue()).toString(t).substr(1) + a,
                        r.divRemTo(n, r, o);
                    return o.intValue().toString(t) + a
                }
                function Q(t, i) {
                    this.fromInt(0),
                    null == i && (i = 10);
                    for (var s = this.chunkSize(i), n = Math.pow(i, s), r = !1, o = 0, c = 0, l = 0; l < t.length; ++l) {
                        var u = a(t, l);
                        0 > u ? "-" == t.charAt(l) && 0 == this.signum() && (r = !0) : (c = i * c + u,
                        ++o >= s && (this.dMultiply(n),
                        this.dAddOffset(c, 0),
                        o = 0,
                        c = 0))
                    }
                    o > 0 && (this.dMultiply(Math.pow(i, o)),
                    this.dAddOffset(c, 0)),
                    r && e.ZERO.subTo(this, this)
                }
                function X(t, i, s) {
                    if ("number" == typeof i)
                        if (2 > t)
                            this.fromInt(1);
                        else
                            for (this.fromNumber(t, s),
                            this.testBit(t - 1) || this.bitwiseTo(e.ONE.shiftLeft(t - 1), at, this),
                            this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(i); )
                                this.dAddOffset(2, 0),
                                this.bitLength() > t && this.subTo(e.ONE.shiftLeft(t - 1), this);
                    else {
                        var n = new Array
                          , r = 7 & t;
                        n.length = (t >> 3) + 1,
                        i.nextBytes(n),
                        r > 0 ? n[0] &= (1 << r) - 1 : n[0] = 0,
                        this.fromString(n, 256)
                    }
                }
                function tt() {
                    var t = this.t
                      , e = new Array;
                    e[0] = this.s;
                    var i, s = this.DB - t * this.DB % 8, n = 0;
                    if (t-- > 0)
                        for (s < this.DB && (i = this[t] >> s) != (this.s & this.DM) >> s && (e[n++] = i | this.s << this.DB - s); t >= 0; )
                            8 > s ? (i = (this[t] & (1 << s) - 1) << 8 - s,
                            i |= this[--t] >> (s += this.DB - 8)) : (i = this[t] >> (s -= 8) & 255,
                            0 >= s && (s += this.DB,
                            --t)),
                            0 != (128 & i) && (i |= -256),
                            0 == n && (128 & this.s) != (128 & i) && ++n,
                            (n > 0 || i != this.s) && (e[n++] = i);
                    return e
                }
                function et(t) {
                    return 0 == this.compareTo(t)
                }
                function it(t) {
                    return this.compareTo(t) < 0 ? this : t
                }
                function st(t) {
                    return this.compareTo(t) > 0 ? this : t
                }
                function nt(t, e, i) {
                    var s, n, r = Math.min(t.t, this.t);
                    for (s = 0; r > s; ++s)
                        i[s] = e(this[s], t[s]);
                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值