jdz 政府网站webpack逆向和部分还原

有一个之前同事他们要一些政府网站的信息,做模型,结果有一个地区的网站要么加载慢,要么出问题就问了下。正好我最近研究webpack,其中一个就是webpack的。其实之前已经看了两周webpack相关的内容了。实在是不得要领,最基础的就是找到调用的地方,一行行补,一个方法一个方法的口,但是看到一个帖子好像webpack有通用的方式,于是研究了起来。可以别人的案例看着容易,自己不事件,始终用不起来。

webpack原理和逆向实战_webpack逆向-CSDN博客

基础理论可以看上面的帖子。

一.查找数据确认断点

进来有一个无限debug,小网站还这么复杂,不在停留就跳过去了。

网站打开后查找明文,没有又找到。

请求一个data,响应也是一个data。

在源代码中搜索 data,有好多,上面的打上断点就能断住。最后确定就是这个S。就是加密和解密的类。

二、判断webpack

看这个js 文件开头,有exports 这种导入方法,和大多数的webpack的导入基本相同。

再看下面n(数字)这种基本就是 webpack了。简单的话能确定算法就行了。这个网站有点没看明白,估计是二次封装了。

三、判断加密和代码确定

从S的方法和值来判断,可能是aes。但是prikey 是干嘛的不确定。

再看在控制太执行情况,看着很复杂的代码,执行结果拆分出来执行 就很清晰了。

S.encryptSessions(JSON.stringify(x))

还原完成后,就这么简单的一句话,可以是原始代码真的让人看不懂。后面还有好多这种。

通过这块知道,只要S 这个弄出来就行了。一点点抠,没搞过不得要领,n那个就 没搞明白。

四、webpack 还原

通过源代码发现,这个网站虽然看起来很麻烦,但是webpack的文件只有一个,入口和内容都在这一个js文件中。上面帖子找到了webpack_mixer.js 这个ast还原 webpack的库,看了下挺老了,但是还能用。于是用它试了下,

node webpack_mixer.js -l app.c8af4fa5.js  -o webpack_out.js

找到数据的文件,输出到一个文件。

目录大概就这样。调用

const n = require('./webpack_out');

调用基本这样可以了。

五、扣js代码了。

核心代码就是这个S和a方法,再往里就是写key

可能是我抠出来的代码不对,所以基本上所有的代码我都还原了,要不运行不过去。还原之后的东西 就可以看懂了主要就是aes 方式的加密。

但是代码初始化之后发现无法直接调用。要不的话没有秘钥返回空,秘钥是死的,iv每次加载后都不同。

S.getKey();#设置key
S.genrandomString();#随机一个iv

这就是运行的结果,发现有一段乱码,那个是因为iv的问题,请求用什么iv还原就用什么,要不最初那几行是乱码。

最终代码如下

const n = require('./webpack_out');

var document ={}
    , r = n(372)
    , o = n(10)
    , t = {}
    ,SS;
var i = o(n(425))
    , a = o(n(426))
    , s = o(n(9))
    , c = r(n(373));

function l() {
    var e = ["tmkPx0ZdRG", "W4BdSsi", "W6bGgSoliG", "uCoDW7/cRCkknbWH", "WRldHMnhBa", "bCowhmkxbq", "sslcMcvj", "WQmyW4pdNIe", "txW/W7m", "W5tdSsah", "ESkCW6Otqq", "WR4PW5H8W5K", "WQZdIMnh", "qupcImkgW7C", "nsuUWPxdHq", "FKRdRa", "sNy3", "WPZcL1pdKmk/", "zh/dG8obW4ynW5NcRSk+tM7dM10", "tSkhW4lcT8og", "bqpdMmodWOBcTr4HWQnjmIy", "W7JcH8kaWQ5i", "ceVdUr3dGa", "W5JcUtlcL8o5", "hCofbSktfW", "hmkNW63dNGe", "ymkPWOO1W6/cU8osq8oIzSoeWPO", "rNtdSXJdKq", "f8k5W4xdRqG", "s2ddVX7dUG", "oSkMgX3cJG", "WQauW4tdGG", "hSkzW6y2zG", "zLtdOCk4", "hHSPWPFdKa", "sxeZvq", "W47cOCk3WPdcQW", "q8k5WRBdIvm", "gXdcQGKj", "xMiyxtG", "WR3dJgjlCq", "BCkfgmk4", "y3/dICokW4ajWRtcVSkmAuZdMa", "waaQW6Ty", "z8kVrZep", "F8oBye5y", "sZZcVYDU", "qmo7WR/cJ0HEWPWkW5eAWQ7dOCog", "x2OvxY4", "F8kBW6qSyG", "WQ0sl8oGWRm", "EYe7W6Tz", "W6RdQrCPba", "u3KIW7FcNa", "WOxcJCkYW4ddTG", "ESolx0DJ", "mdpcLmkBWOi", "xCo3zNDA", "fJlcOryn", "ymkfqu7dNW", "dY7cQupdVG", "W4PlcCojiW", "W5hdLrOokG", "wSoXyhf0", "WOrsW6bHWQe", "W4tdSbmgla", "aSkcW5i6DG", "xbVcPSoKla", "WOeKiY/cKW", "rhGbW5iE", "h8k5W5NdStO", "W6JcPmkDW4Dl", "WP8khr4", "uCkbW6my", "W77dLSkAW6K", "W5tdLZz4qG", "vSk1aCkWBa", "W7NcP8kwW7P9", "Fce1W7fB", "fvldLtqZ", "ESkytW", "W7tcGmkWW6u", "WRxdGmoaoIq", "nmkJW5/dOmof", "WOhdH3roEq", "rMNdUaRdKq", "fSolWRVdO8kz", "iCoIW6ldPdG", "WRWwl8o2W6W", "qYJcKXbb", "W5NdLXW3iG", "W6RcLmkCWR8r", "u1xcMCk/W5m", "kSoxWQRdOG", "sM3dVXW", "z2WdztG", "gmkHW7ddKCox", "qMSJW63cNG", "lSkQerNcJa", "y8kfh8kZ", "WRRdL8oCja", "WQ4WWPRdRd0", "vMtcOSkNW5S", "WRNdHNLVBW", "dCkVW77cK8ki", "W5RcV8k4W6q", "W5ldMd7cJCoD", "x8oWBeHq", "F8k6wZHl", "DmktrLu", "W7/cImkqWRKh", "W4hdIsdcHCol", "W77dSd4Pla", "WOddNmodbcO", "WRyAkSoAWQS", "A0XRW4iU", "CvPAW5qP", "W5RcUCkKW7nf", "bmkqW5ZdJX8", "gWNcUJCb", "WQeKiY8", "DmouC8kRWQK", "W6NcG8khWPKB", "nSo/W6xdUsS", "gCkZW43dRrG", "sSkqW6FcTSov", "wuRdU210", "lCocWRpdPmkz", "WRFcNhNdISkS", "tmkKWQJdKeq", "WRaIW4HhW4e", "CMVdGcJdGG", "CSkfW5ddJSoeWP9B", "q8kQWQpdLq", "WOOylmoeWRm", "zCkTgmkhsG", "W53dVcm9pG", "WPddHCoYbXe", "th3cUSkyW6q", "uh0KW5BcNa", "AKJdSh5x", "W7ldMJi9cW", "W45dF8kfbq", "aCkGW6JdLWO", "cgFdRr4e", "CsG1W7bI", "WQCcW57dMqW", "W7hdUmksW4VdVW", "nmo/W4TzWQ4", "ASk4WPNdUgq", "sse8W7W", "W6zjWPRdLqa", "FConceldMq", "eCkeW6q+Cq", "W73cNSk4WPeZ", "a8oUW4tdJWu", "gSkWmZCeDCkQW7VdUH4yWRBcPG", "W7JdUCoLW7Sa", "WRSDW47dMdS", "tMaqwcC", "b8oscmkuhG", "CSkZW7epAq", "mCoaWP7dPSki", "WQlcGSkCicy", "WPG0iHZcOW", "WPaHnYtcUa", "mYFcT8kbWPS", "AmkAbSkXsG", "AmkTysW", "W4NdLmk7W5XO", "v8kDW6mrqq", "nmkZW7FdLSo2", "WP/dSxLZuG", "CSobD8kuWRu", "WQ3dHN5tCq", "WRddKSohmG", "uSkqW7Orrq", "tMijvaG", "ttyGW7XE", "WOJcGgXVwCksWPKzW4JdSLvO", "BKbFW44+", "s8oasCk/WQ0", "mspcJSkXWOi", "C8k+WRNcOhZcQ3FdQNXPW4ldSG", "wSkAW73cVSoU", "W7lcGmkDW7ddRG", "W513bCoqnG", "mSkVW7e", "WRRdL8oCpHa", "vmoocSkikW", "ssxcOHjd", "W6rHiSo2oG", "l8kJhb/cHW", "nttcG8kiWOi", "W5FcRSk5W7ff", "ywNdGunO", "WQFdJM9pDa", "W5VcG8kjWRiu", "zSkfsGLw", "pSoDrSoLcG", "xmk4W5xcISoP", "W6NdNaKRoa", "ASkBsK7dNq", "ySkiqbLq", "FCkfjCkPqq", "hSodhCkXha", "swpdQmkVza", "w0VdSeL2", "WPDDW7f1", "kSkNW6hdHSoQ", "v8kxxea", "bfL6psm", "WPFdJMPZEq", "iCkNW7ZdIq", "W45vxmkVla", "W7hdQmkHW5Hr", "W6b2oCoHcW", "ufVdTg0", "W47cV8kXWQ4", "W4xdIXxcH8or", "f8k8W7xcP8k8", "CCkhWQRdUeq", "W5ndqCk3lq", "y8k7rZ8", "W6JdGCkhW5zZ", "uSk4ttXX", "qZtcNWq", "WOquk8ocWPG", "zepdHSkO", "WQvOWOu", "qSo6tvDu", "WRWGba/cNG", "f8oTyJjH", "wSo3BgC", "m8kXW6/cKeO", "qCofWRrMn8kZDCkAzCo7W4BdNa", "lGu4WPVdGq", "FSkSqsDk", "WP48khpcTa", "asaiWRZcHG", "umkAW77cSmoc", "gmkUar0", "z1JdOCkTEW", "nSoIW7ZdSt4", "i8o7W41PWRm", "r8klW6FcRSoV", "DmktxgRdLa", "fwBdIcW", "r8kUWRVdRuG", "WPfsW6rEWQu", "bbyWWPpdKa", "FSk6wZTn", "WO87oCosWRK", "W7xdJdNcJq", "fgNdJJ4", "z8klamk0va", "h3P2kbW", "ASk6xbTb", "cCooaCk5hW", "aCooW7JdPce", "W7ZdGCkhW4P0", "W6NcICkDWOKh", "W4ZdJt0Rha", "ySkgW4/cISoc", "WRCdW47dHHy", "kCk7e0q", "W7lcTmkRWPtcIa", "cmkHW7pcJ8oLWRPd", "rh0KW5hcIG", "W4NcGCkPW4BdSW", "W7lcT8k3WO7cVG", "W4lcHmkMWRhcQW", "mspcJSk7WPK", "WRybW7VdObm", "bXlcMGiF", "vSogebpcHq", "esfPWR3dItVcGqJdKSoaCCkNpW", "CuzxW4KU", "Af7dOq", "f8o4W6xdSW", "d8oJWOpdT8ky", "ChhdVb/dOW", "lGCW", "q8kKWQhdILm", "W7tcGmkPW6tdRG", "W5xdKdq", "DSoAF25A", "tZeSW7XE", "F1xcLa", "WR4RW4LA", "wCkWwb9n", "W4ZdVJ7cS8ol", "WOSqvSkKemkRnSo2", "xIWUW6fF", "x8oWANnq", "WPuAAHFcGG", "WRWXlZ7cRa", "ja3cGryD", "g8k5W5JdJa", "tdeQW7Tf", "C8kYW4T+WQG", "nIJcIvCJ", "WRXLWOXtW4S", "ELNdPbZdLG", "W47dK8kzW7Lb", "W6lcSCk5WQNcTG", "WQFdH8osjYy", "qg44zX8", "nG0uWQ7dLa", "W55jqmkUnG", "FtxcQafK", "W6/dLSkAW7fG", "vxtdVZldGa", "W7ZdGCkDW61M", "W6NdHCkDW7TO", "W4NdQXlcPSkh", "zepdU8k1", "nSkviq7cJW", "s2ldSZRdKW", "CubwW6uK", "etdcRHJdScTHW6hcKW", "amoNvvBcVG", "cwFdLZCI", "W7ZdRmkIW6vk", "WQm+sSofyq", "ALCOFL8", "WRxdG8odpYO", "cCkNW7JdGmoi", "qCo/WRhdMIWAW5G5W7q", "cSkcW7/cJCk9", "W6FcOmkyWQhcNa", "eSkSW6FdIrG", "D8ohWPuL", "imkJW6hdSCoR", "WRhdGCo2psa", "edlcRb8Q", "xKpcGSkA", "W4xdIYtcKmoH", "BSkQWQldNg0", "wmkqA2ZdSG", "sc0NW4DE", "sYCAW512", "W5VdJty7ha", "W4lcVSk9WPFcQW", "W5pdLJ4", "dSkfW7JcPSkV", "bmokWO/dT8k0", "WOroW6b5", "t8kBW4BcKa", "hmk6W43dNHS", "W6NcISkAWQGB", "omkOW77dLHO", "ESkNmCkmwW", "n8kuW5JdLSoL", "gmoqbY3dIa", "qgWDwd4", "kraPWONdKa", "CNZdImkDFW", "W5XfqCkPlq", "W7hcHSoVWQldLW", "vmoFW5RdVCoQ", "x3Ciwdm", "W5ldKd7cJG", "fKnZaJ4", "mmo5W7xdNJ8", "uc0SW41F", "nmkVW7RdI8oX", "W4VcUCk+W51u", "mHS4WPxdGG", "lSksW5NcOSk7", "cddcJrGd", "W7RdOqmvkW", "W5ZcRSkJW5Lg", "iSobgrJcGLBdO2qopSoIW7nG", "uf9WW6qY", "ymkFrwZdNG", "jSkJW6BcImkZ", "W5Wlt8kbBW", "xcKQW5DU", "aCojWR/dS8kR", "BSk+rcq", "W43dKdpcRmoC", "v8knW7ajtW", "h8knW6VdOsK", "ESoFy8kDWRq", "r8kVi8kQqG", "p1PmW4fW", "BuVdI8kADG", "W47cSSkIWOW", "W4xdUJNcMCoA", "bCk9W5RdNGO", "gSoRecRdRq", "fxlcUCooW4u", "qMpdOIZdLG", "fCovhcNdTa", "chBdLtiT", "p8k9daZcLG", "kYi1WPtdKq", "fCkEgtFdIa", "WRCzoW", "emoaWQDkevFdQfmmcrNdQW", "o8kbaaRcHa", "W7L1bCoIba", "yCk9W6CLtW", "ih12", "W5/cQSkJW7C", "WOlcR3DhEWtdHCo+WPJcQmocW5dcNG", "WRG3hXJcRW", "v8kpeetdSa", "cmkfW4NcVmkX", "uNNdGejv", "vM/dUrFdLG", "WPRdKSoEnGK", "jSoQW5TTWQK", "WQqdW57dVqC", "pNVdVsSz", "pbaOWRNdMG", "tSkhW7ZcOCoK", "WPdcTvFdImkF", "fMVdHb8M", "sCkOWPZdNfq", "oColWQ7dKSkp", "cwpdIt8S", "W6D8imoqpG", "abBcPJG2hCo4A8kSeqHl", "W6ZdVYmkhW", "W7jTfrtdOG", "a8o0cCkbba", "ECo+xCkXWQy", "d8kJW7tdGCoN", "W63cHSk8W6pdSW", "pNT7cGq", "WRmyW5hdJW", "W7ldISkxW7bW", "W7z9emownq"];
    return (l = function() {
        return e
    }
    )()
}
function d(e, t, n, r, o) {
    return f(r - -502, t)
}
function f(e, t) {
    var n = l();
    return (f = function(t, r) {
        var o = n[t -= 166];
        if (void 0 === f.xoAZDu) {
            var i = function(e) {
                for (var t, n, r = "", o = "", i = 0, a = 0; n = e.charAt(a++); ~n && (t = i % 4 ? 64 * t + n : n,
                i++ % 4) ? r += String.fromCharCode(255 & t >> (-2 * i & 6)) : 0)
                    n = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);
                for (var s = 0, c = r.length; s < c; s++)
                    o += "%" + ("00" + r.charCodeAt(s).toString(16)).slice(-2);
                return decodeURIComponent(o)
            }
                , a = function(e, t) {
                var n, r, o = [], a = 0, s = "";
                for (e = i(e),
                r = 0; r < 256; r++)
                    o[r] = r;
                for (r = 0; r < 256; r++)
                    a = (a + o[r] + t.charCodeAt(r % t.length)) % 256,
                    n = o[r],
                    o[r] = o[a],
                    o[a] = n;
                r = 0,
                a = 0;
                for (var c = 0; c < e.length; c++)
                    a = (a + o[r = (r + 1) % 256]) % 256,
                    n = o[r],
                    o[r] = o[a],
                    o[a] = n,
                    s += String.fromCharCode(e.charCodeAt(c) ^ o[(o[r] + o[a]) % 256]);
                return s
            };
            f.KxoyON = a,
            e = arguments,
            f.xoAZDu = !0
        }
        var s = n[0]
            , c = t + s
            , u = e[c];
        return u ? o = u : (void 0 === f.OjTfPW && (f.OjTfPW = !0),
        o = f.KxoyON(o, r),
        e[c] = o),
        o
    }
    )(e, t)
}
function v(e, t, n, r, o) {
    return f(o - -58, r)
}
function m(e, t, n, r, o) {
    return f(e - -238, o)
}
function u(e, t, n, r, o) {
    return f(r - -879, e)
}
var g = this && this[d(0, "DA@x", 0, 61) + "t"] || function(e, t) {
    var n = {};
    function r(e, t, n, r, o) {
        return d(0, r, 0, t - -234)
    }
    function o(e, t, n, r, o) {
        return d(0, n, 0, o - -322)
    }
    function i(e, t, n, r, o) {
        return d(0, e, 0, n - 484)
    }
    function a(e, t, n, r, o) {
        return d(0, e, 0, t - 640)
    }
    n[r(-398, -540, -423, "w7Wx", -556)] = function(e, t) {
        return e < t
    }
    ,
    n[l(-324, -449, "j1oW", -251, -355)] = function(e, t) {
        return e != t
    }
    ,
    n[a("$(eM", 684, 741, 730, 672)] = function(e, t) {
        return e === t
    }
    ,
    n[l(-777, -690, "!1vy", -574, -375)] = o(0, 0, "8LFL", 0, -657) + a("gzIc", 676, 494, 841, 510),
    n[a("vOBr", 619, 758, 555, 534)] = function(e, t) {
        return e < t
    }
    ,
    n[l(-309, -142, "BJqZ", -353, -285)] = function(e, t) {
        return e < t
    }
    ;
    var c = n
        , u = {};
    function l(e, t, n, r, o) {
        return d(0, n, 0, r - -280)
    }
    for (var f in e)
        Object[l(0, 0, "3kCH", -344) + i("Q!3$", 0, 315)][r(0, -471, 0, "D5Fe") + a("ZIPW", 477) + r(0, -160, 0, "gzIc")][r(0, -343, 0, "vOBr")](e, f) && c[o(0, 0, "h3z0", 0, -630)](t[i("O*mG", 0, 191) + "Of"](f), 0) && (u[f] = e[f]);
    if (c[r(0, -273, 0, "!eRz")](e, null) && c[o(0, 0, "zY6h", 0, -503)]((0,
    s.default)(Object[a("c6si", 335) + l(0, 0, "5uOI", -508) + i("()Od", 0, 577) + l(0, 0, "iunk", -326) + "s"]), c[a("h3z0", 502)])) {
        var h = 0;
        for (f = Object[i("iunk", 0, 345) + o(0, 0, "()Od", 0, -526) + a("bZ5J", 735) + l(0, 0, "KB#j", -320) + "s"](e); c[o(0, 0, "RU*R", 0, -312)](h, f[i("c6si", 0, 436) + "h"]); h++)
            c[l(0, 0, "jR8M", -583)](t[i("!1vy", 0, 267) + "Of"](f[h]), 0) && Object[r(0, -385, 0, "Kr0L") + i("LEms", 0, 335)][o(0, 0, "$(eM", 0, -270) + i("55so", 0, 171) + o(0, 0, "5uOI", 0, -530) + i("Isa9", 0, 281)][a("j1oW", 351)](e, f[h]) && (u[f[h]] = e[f[h]])
    }
    return u
}
    , y = d(0, "jR8M", 0, -173) + w(1253, 1390, 1386, 1333, "6RW[") + d(0, "c6si", 0, -85) + d(0, "KB#j", 0, 97) + d(0, "zY6h", 0, -275) + u("FJuq", 0, 0, -701) + "t"
    , b = w(1356, 1265, 1350, 1367, "!eRz") + w(1104, 1210, 965, 1093, "nc[V") + d(0, "5uOI", 0, -3) + m(260, 0, 0, 0, "6RW[") + m(66, 0, 0, 0, "!eRz") + v(0, 0, 0, "!1vy", 436) + m(281, 0, 0, 0, "55so") + w(1493, 1433, 1207, 1401, "$(eM") + v(0, 0, 0, "KB#j", 175) + w(1566, 1402, 1504, 1470, "()Od") + w(1452, 1471, 1702, 1484, "bZ5J") + d(0, "D5Fe", 0, -53) + w(1094, 1197, 1064, 1119, "@[4z") + m(223, 0, 0, 0, "8LFL") + u("DA@x", 0, 0, -488) + u("3kCH", 0, 0, -279) + w(1487, 1475, 1358, 1467, "!1vy")
    , _ = v(0, 0, 0, "FJuq", 143) + m(173, 0, 0, 0, "KJ@*") + "c";
function w(e, t, n, r, o) {
    return f(r - 909, o)
}
var C = 'E08247708934F42E'
    , E ='0A234C4C639E015D';
var S = function() {
    function e() {
        (0,
        i.default)(this, e)
    }
    return (0,
    a.default)(e, null, [{
        key: '_dynamicEncrypt',
        value: function(e, t, n) {
            var r = {};
            function o(e, t, n, r, o) {
                return m(o - 537, 0, 0, 0, n)
            }
            function i(e, t, n, r, o) {
                return d(0, r, 0, o - 1412)
            }
            r['UwjfF'] = 'utf8',
            r['ndeCv'] = 'base64',
            r['aZcnJ'] = function(e, t) {
                return e || t
            }
            ;
            var a
                , s
                , l = r
                , f = c['createCipheriv']("aes-128-cbc", t, n)
                , h = f['update'](e, l['UwjfF'], l['ndeCv']);
            function p(e, t, n, r, o) {
                return u(n, 0, 0, r - 839)
            }
            function v(e, t, n, r, o) {
                return d(0, o, 0, n - 670)
            }
            return h += f['final'](l['ndeCv']),
            l['aZcnJ'](h, "")['replace'](/\//g, "_")
        }
    }, {
        key: '_dynamicDecrypt',
        value: function(e, t, n) {
            var r = {};
            function o(e, t, n, r, o) {
                return 'utf8'
                // return m(r - 785, 0, 0, 0, o)
            }
            r['jOZIj'] = function(e, t) {
                return e || t
            }
            ,
            r['lzDVa'] = 'base64',
            r['lmBVB'] = 'utf8';
            var i = r;
            function a(e, t, n, r, o) {
                return v(0, 0, 0, o, r - -475)
            }
            function s(e, t, n, r, o) {
                return u(t, 0, 0, e - 962)
            }
            function l(e, t, n, r, o) {
                return 'jOZIj'
                // return u(n, 0, 0, r - 962)
            }
            e = i['jOZIj'](e, "")['replace'](/_/g, "/");
            var f = c['createDecipheriv']("aes-128-cbc", t, n)
                , h = f['update'](e, 'base64', 'utf8');
            return h += 'll}'

        }
    }, {
        key: 'getKey',
        value: function() {
            var e, t, n = this['_dynamicEncrypt'](b, C, E);
            function r(e, t, n, r, o) {
                return d(0, r, 0, t - -312)
            }
            function o(e, t, n, r, o) {
                return v(0, 0, 0, n, t - -129)
            }
            this['priKey'] = 'QaZB7ddSo0bedGhW'
            
        }
    }, {
        key: 'genrandomString',
        value: function() {
            function e(e, t, n, r, o) {
                return u(r, 0, 0, e - 1200)
            }
            var t = {};
            function n(e, t, n, r, o) {
                return m(e - -530, 0, 0, 0, t)
            }
            function r(e, t, n, r, o) {
                return u(t, 0, 0, n - 1314)
            }
            function o(e, t, n, r, o) {
                return v(0, 0, 0, n, e - 207)
            }
            t['wrQRv'] = function(e, t) {
                return e + t
            }
            ,
            t['JsVAC'] = function(e, t) {
                return e + t
            }
            ;
            var i = t
                , a = i['wrQRv'](i['wrQRv'](i['JsVAC'](Math['random']()['toString'](36)['slice'](-8), "-"), Math['random']()['toString'](36)['slice'](-8)), (new Date)['getTime']())
                , s = this['_dynamicEncrypt'](a, C, E)['replace']("_", "");
            function c(e, t, n, r, o) {
                return u(e, 0, 0, t - 890)
            }
            return this.iv = s['substring'](1, 17),
            this.iv
        }
    }, {
        key: 'encryptSessions',
        value: function(e) {
            if (!this['priKey'] || !this.iv)
                return "";
            function t(e, t, n, r, o) {
                return 'priKey'
            }
            return this['_dynamicEncrypt'](e, this['priKey'], this.iv);
            var n, r, o, i, a, s
        }
    }, {
        key: 'dynamicSessions',
        value: function() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
            function t(e, t, n, r, o) {
                return v(0, 0, 0, n, e - 340)
            }
            function n(e, t, n, r, o) {
                return 'priKey'

                // return w(0, 0, 0, n - 69, o)
            }
            function r(e, t, n, r, o) {
                return m(t - 761, 0, 0, 0, n)
            }
            function o(e, t, n, r, o) {
                return w(0, 0, 0, r - -1808, n)
            }
            return this['priKey'] && this.iv && e ? this['_dynamicDecrypt'](e, this['priKey'], this.iv) : ""
        }
    }, {
        key: 'setSessionData',
        value: function(e) {
            var t, n, r, o;
            this[(r = -280,
            o = "iunk",
            w(0, 0, 0, r - -1623, o) + (t = "nc[V",
            n = -220,
            w(0, 0, 0, n - -1574, t)) + "a")] = e
        }
    }, {
        key: 'getSessionData',
        value: function() {
            return this[(n = 1156,
            r = "RU*R",
            w(0, 0, 0, n - -63, r) + (e = "LEms",
            t = 328,
            m(t - 144, 0, 0, 0, e)) + "a")];
            var e, t, n, r
        }
    }, {
        key: '_getUuid',
        value: function() {
            function e(e, t, n, r, o) {
                return m(n - 352, 0, 0, 0, t)
            }
            var t, n, r = Math[o(1110, "BJqZ", 1307, 1331, 1379) + "m"]()[o(1310, "@[4z", 1197, 1128, 1360) + e(0, "YwVr", 390)](36)[(t = 170,
            n = "LEms",
            m(t - 21, 0, 0, 0, n))](-8);
            if (r)
                return r;
            function o(e, t, n, r, o) {
                return m(n - 971, 0, 0, 0, t)
            }
            return this[o(0, "!eRz", 1218) + e(0, "FJuq", 561)]()
        }
    }, {
        key: 'getUserId',
        value: function() {
            var e, t, n = {};
            n[(e = 1191,
            t = "$(eM",
            u(t, 0, 0, e - 1580))] = l(700, 899, 806, "$(eM", 768);
            var r, o, i, a, s = n, c = localStorage[(r = -375,
            o = "VF0s",
            v(0, 0, 0, o, r - -759) + "em")](s[l(1109, 974, 1045, "5uOI", 927)]);
            function l(e, t, n, r, o) {
                return u(r, 0, 0, t - 1285)
            }
            if (!c)
                return c = this[l(0, 762, 0, "FJuq") + l(0, 667, 0, "w7Wx")](),
                localStorage[(i = "BJqZ",
                a = 678,
                v(0, 0, 0, i, a - 252) + "em")](s[l(0, 906, 0, "P2Cx")], c),
                c;
            return c
        }
    }, {
        key: 'getUserEncrypt',
        value: function() {
            var e = {};
            function t(e, t, n, r, o) {
                return u(r, 0, 0, o - 1028)
            }
            e[s("Kr0L", 751, 831, 917, 892)] = function(e, t) {
                return e + t
            }
            ,
            e[s("(%8(", 580, 616, 375, 637)] = function(e, t) {
                return e + t
            }
            ;
            var n, r, o, i, a = e;
            function s(e, t, n, r, o) {
                return d(0, e, 0, t - 839)
            }
            return a[t(0, 0, 0, "P2Cx", 593)](a[(o = "9[U)",
            i = 217,
            v(0, 0, 0, o, i - -123))](navigator[(n = "9[U)",
            r = 491,
            w(0, 0, 0, r - -691, n) + t(0, 0, 0, "gzIc", 442))], "|"), this[s("BJqZ", 857) + s("gzIc", 825)]())
        }
    }, {
        key: 'getCookie',
        value: function(e) {
            var t, n, r, o, i = {
                ZdUpH: function(e, t) {
                    return e + t
                },
                Mawmc: (r = "j1oW",
                o = 764,
                v(0, 0, 0, r, o - 508)),
                PYeMm: (t = "6RW[",
                n = 837,
                u(t, 0, 0, n - 1465) + l("gzIc", -127, -105, -74, -42) + f(118, -19, -76, "*gF]", -14)),
                omswt: function(e, t) {
                    return e(t)
                }
            };
            function a(e, t, n, r, o) {
                return w(0, 0, 0, e - -369, n)
            }
            var s, c = new RegExp(i['ZdUpH'](i['ZdUpH'](i['Mawmc'], e), '=([^;]*)(;|$)'));
            function l(e, t, n, r, o) {
                return d(0, e, 0, o - 133)
            }
            function f(e, t, n, r, o) {
                return u(r, 0, 0, t - 371)
            }

            return 'undefined'
            // return (s = document['cookie']['match'](c)) ? i[a(708, 0, "j1oW")](decodeURI, s[2]) : null
        }
    }, {
        key: '_getWindowNameJson',
        value: function() {
            var e, t, n, r, o = window[(e = 275,
            t = "6RW[",
            w(0, 0, 0, e - -1014, t))];
            if (o)
                try {
                    var i = JSON[(n = 364,
                    r = "YwVr",
                    w(0, 0, 0, n - -858, r))](o);
                    if (i)
                        return i
                } catch (e) {}
            return null
        }
    }, {
        key: '_getWindowNameJsonByKey',
        value: function(e) {
            var t, n, r, o, i = this[a(1041, "LEms", 902, 1042, 863) + a(1007, "h3z0", 1092, 994, 982) + (r = "sirW",
            o = -88,
            u(r, 0, 0, o - 554)) + (t = 1106,
            n = "bZ5J",
            m(t - 1175, 0, 0, 0, n))]();
            function a(e, t, n, r, o) {
                return w(0, 0, 0, e - -72, t)
            }
            if (i && i[e])
                return i[e];
            return ""
        }
    }, {
        key: 'getSessionUuid',
        value: function(e) {
            function t(e, t, n, r, o) {
                return d(0, n, 0, t - 726)
            }
            var n = {};
            function r(e, t, n, r, o) {
                return v(0, 0, 0, r, e - -114)
            }
            n[r(116, 331, 218, "!1vy", 289)] = r(339, 515, 333, "!eRz", 319) + r(62, 50, 264, "h3z0", -147) + "d";
            var o = n;
            function i(e, t, n, r, o) {
                return m(t - 390, 0, 0, 0, o)
            }
            function a(e, t, n, r, o) {
                return u(t, 0, 0, r - 474)
            }
            var s = this['getCookie'](e);
            return s || this[i(0, 552, 0, 0, "p0Z9") + i(0, 345, 0, 0, "5uOI") + a(0, "FJuq", 0, 182) + i(0, 731, 0, 0, "jR8M") + t(0, 499, "p0Z9")](o[r(361, 0, 0, "KJ@*")])
        }
    }, {
        key: 'getTopWindow',
        value: function() {
            function e(e, t, n, r, o) {
                return v(0, 0, 0, n, o - 810)
            }
            if (this[i(454, 225, 128, 245, "Isa9") + n(-545, "RU*R", -669, -543, -524) + o(-390, "YwVr", -246, -428, -70)])
                return this[e(0, 0, "vOBr", 0, 1141) + n(-637, "sirW", -466, -407, -545) + i(756, 412, 618, 548, "!eRz")];
            var t = window;
            function n(e, t, n, r, o) {
                return v(0, 0, 0, t, o - -860)
            }
            function r(e, t, n, r, o) {
                return m(t - 182, 0, 0, 0, o)
            }
            for (; !t[n(0, "KB#j", 0, 0, -658) + o(-227, "55so", -11, 103, -75) + i(202, 88, 318, 268, "3kCH")]; )
                t = t[r(0, 448, 0, 0, "7EGH") + "t"];
            function o(e, t, n, r, o) {
                return m(n - -276, 0, 0, 0, t)
            }
            function i(e, t, n, r, o) {
                return d(0, o, 0, r - 567)
            }
            return this[e(0, 0, "jR8M", 0, 1192) + r(0, 494, 0, 0, "!eRz") + e(0, 0, "ZIPW", 0, 1259)] = t,
            this[o(0, "Ls5P", -222) + e(0, 0, "nc[V", 0, 1281) + e(0, 0, "sirW", 0, 1112)]
        }
    }]),
    e
}();
t.DataUtils = S;

function c(e, t, n, r, o) {
    return w(0, 0, 0, e - -230, n)
}
S.getKey();
S.genrandomString();

S['iv'] = 'bQJkFXUB9junmeE0'
// console.log('加密后数据',S['encryptSessions'].toString())
console.log('iv',S.iv)
console.log('priKey',S.priKey)



console.log('加密后数据',S['encryptSessions']('encryptSessions'))
data = "DXt_9AItvF9ViQ68XmzRV6004gMhqUWCTOWRtJYiUMJBeQeS1eLeg2pxX51u_y5CF6US2Tw5+fFt\nbLNlfoi_zY6D0s8wx9LwyXLacyHP7wxZ_zMWlBdJxXVosnrK4CzfPvVt311YhkSz_W9a7uuhnuqk\nqCLeDXGnPivtNH8wmDj_BOr_w8qpWtCPwa480jTf+BMQOXy5XO01SlMuVnwpd9M9OdE9gO+YdbxT\nR7O2F76cB259JXLuJXXTzxH+ImdbiBqhxZWNjefTDaBYS1b67YapOzekCx4KoPE+xIDipo7_KMyO\naHi4+QvpFlQgd+A76V67FM5kJavddDlFYnWTJdsZtMen9ScToxYDRut0DTvLJIFDXQ7B8HngnACh\nv3J4INP8xYf91XvdcDhAH1F4Imsi8_iqZHlvtmFoYQyuW9kLjctEXXSu6AltE6SI6ova6OPPpZE9\nmI8cwvJJVokoe2NcDDboZ83XP5GVYb8Vc+ESBkTYNZXxRkzntmadTBMNoPMHlzqYk0t2PTo_9Vwa\n2_6wDof6qZ5_I324jUuhYhMYkgDXtJ_yFLEnzJXwWEo9JU1UroSSJTBP7_F+Gdb9ESy96h4mJqbp\nCU+oacojhQpd65CRfXeWXwCkOELi7AEgULDdYxlV4_4P_f+2hP6R1hqQ+g5WovNSfhIxvSJ5fA14\nDhF4msikD3vSK+KJbOSVsKGaOIcDaHVXfK05kcUAguviy4a5M27FNIPa71TldxrMCwNA6tehMd0h\nybh9X3Slz6Ulhqpi6dJcSEysJCmApPSV+0s6ItiF80Gi1Kcp2hTHDE2dV4I9rHy06ynSWHwd2DTq\ncI9jb2urrt9sAUCixcN3ZgxfAb66Sn3MaSIHKSOkfoBt7Y6DjDr9vxnuj2LXFkgFXJ8yVqmG_BHq\n8RQ_5jcSBUEDVdv3AVAWAi2L8iuPwe8cSP8d75nJsptqjWf8cPvsoVLY2WaX3ilmO8OtEcD_Rq1D\nHwXwP1Fg2bsk_2VL5bkFMmxQkBKA+gdoT7mxIKlfF7xVrlObDc2YDzN8YqnOgP1Vt6886uKFj6wc\nAylAVVJ+v7pWG+R3K33CC+yEcGZlpij3P_rVA6dS6Hk2x37Ubh6zRs0bozDbJ69ygKrT7e0Zu5r0\nSt59GTu4OziJT4mw2FHWxkD7rFxzryCrWJy8oSQKGzWn8IHI94CyjaCLzamYIGgoc6on+9sBG1Rl\nP6BZricFXJBHmUCVkEUtkL0lEm3pv9uyEqNR6AcOTT+cL5OIxIhAvssb45g82uAeU8eGGqLfjKMT\nVd4q6fhiSS6O2qME7wTttov5FtHkznvMg_snu2lAd8p2S3VyR6fy_ZTV39q_imTF22WGbJNoiQ9W\neyNGxyeH8pfYq2dEW4A6POP5zWcRcWhATcmImofKU_0aFrRQC_7H_Kzfp1vPbAeCS_HRKNFOfOtv\nnUpCTisGZcwMaxG7V08NUjA25aFU9aOCjwE0cmcPOHemdy7beQ0VPHerhXfRm4ZWRh1u3Y3F8Or_\nyc_MKg7p9eTGGIA3DOxajMqHjKQlsyDDuK8ex0n12JwjMY5hvG58MUr16JpThO3ug08w0Zk9jE6x\n4Ex7UKhFcQ1zGVG0UNhkpsL7umKIzAiKePtu0Mu01jbSZJpxo3gZucR7pqV6zYjHA2SMaMxoGn2q\nAhTcom03ssJEJPIU0ggLyKQQjGw0T6Z69qZ3TX5BiEd8aNd+ggaoCoXVxe9rNl8F5ZmmEwnclq9W\ngXTz+MGDeyuDJ7D47S3obons6aFSrXPn9J9umKn+Ms4QxZ6ckiQwKD+w_K5qJh8xeOjDU66VfsTa\nPC2U3_dAT_6w4LqKJ+uAoV8h6SeVfhkgje3r4R4Oezg+R_SS6HJ_x3YtR1k11ap8EKRiGOmgFudn\n0ujlNg4rWps7KRD2G+WvdacnK+lMiyorH3pakSlPH++DL7HVe4g_DIKAlmbN9oNhyAOCdqvtgV_Q\nx9S3PoXLAq4qtHKHay3XzNMmz+Cejs8hSYXLxg_Uqih9SjZmlfQX1PEBa9zd8qbhrlJ3bB5c4fLu\niNSX3wQpdKwT5JroKCjp+hdzqk6dNkwVs+hcbW+JEd86dBfdWhKGWl4YcVm80o4L+rSb2WmQMTJ+\nhgn1RP3QrvkpRZz9rdCl2QvZyM0="

console.log('解密后数据',S['dynamicSessions'](data))

有啥问题欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值