58同城算法分析-login参数逆向-笔记

网址:aHR0cDovL25iLjU4LmNvbS8=

粗略的看了一下参数还挺多,先排除一下 哪些参数是返回的参数


 


username=191773150*  账号  

password=3538e504255... 加密的密码

token=sStLWKDkEGaPSWq9xuYLdmFvwjDdVEiN //来自 passport.5*.com/58/login/init?***返回

source=58-homepage-pc

path=https%253A%252F%252Fnb.58.com%252F%253Fpts%253D1740848962418&validcode=p8uk

vcodekey=kex5XhdaepcA30NWutlehyVQD9l33kMV  验证码的 返回有

domain=58.com

finger2=zh-CN|24|1|20|3404_1282|3404_1242|-480|1|1|1|undefined|undefined|unknown|Win32|unknown|5|false|false|false|false|false|0_false_false|d41d8cd98f00b204e9800998ecf8427e|e02e41211b4c3c1fb2725f20ecaa7c0d  要处理

isremember=false

autologin=false

isredirect=false

psid=bfd0f330-3193-4a22-a4b2-850c9a328d94  要处理

psdk-d=jsdk

psdk-v=1.1.4

xxzlbbid=pfmbM3wxMD.. 应该是要处理的

wayid=3

xxzl_staticvalue=ac0fc1b1.. . 来自/sdk/ptce.gif?ck=1740848963262&d=58.com&n=zhaq_pc&tn=

xxzl_dynamicvalue=ab6771d2cd744325f.. 要处理

xxzl_namespace=zhaq_pc

fingerprint=m2qXl2zuSZi7C-kZ6.. 来自set-cookie /sec/58/fingerprint

callback=SDK_CALLBACK_FUN_1740848963690.successFun

js  文件是有混淆的  准备硬钢 试试

xxzlbbid  xxzl_dynamicvalue 这2个参数 在多个请求中 都有考虑到其他很多参数需要请求返回 所以 优先处理这2个参数 

xxzlbbid  是 pfmb+ 一个base64  

navigator = {
    // WT-JS_DEBUG
    appCodeName: "Mozilla",
    appMinorVersion: "0",
    appName: "Netscape",
    appVersion: "5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
    browserLanguage: "zh-CN",
    cookieEnabled: true,
    cpuClass: "x86",
    language: "zh-CN",
    maxTouchPoints: 0,
    msManipulationViewsEnabled: true,
    msMaxTouchPoints: 0,
    msPointerEnabled: true,
    onLine: true,
    platform: "Win32",
    pointerEnabled: true,
    product: "Gecko",
    systemLanguage: "zh-CN",
    userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
    userLanguage: "zh-CN",
    vendor: "",
    vendorSub: "",
    webdriver: false,
    appCodeName: 'Mozilla',
    appMinorVersion: '0',
    appName: 'Netscape',
    appVersion: '5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko',
    browserLanguage: 'zh-CN',
    cookieEnabled: true,
}, window = this, window.navigator = navigator;
var MD5 = function (string) {
    function RotateLeft(lValue, iShiftBits) {
        return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
    }

    function AddUnsigned(lX, lY) {
        var lX4, lY4, lX8, lY8, lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
    }

    function F(x, y, z) {
        return (x & y) | ((~x) & z);
    }

    function G(x, y, z) {
        return (x & z) | (y & (~z));
    }

    function H(x, y, z) {
        return (x ^ y ^ z);
    }

    function I(x, y, z) {
        return (y ^ (x | (~z)));
    }

    function FF(a, b, c, d, x, s, ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    }

    function GG(a, b, c, d, x, s, ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    }

    function HH(a, b, c, d, x, s, ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    }

    function II(a, b, c, d, x, s, ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    }

    function ConvertToWordArray(string) {
        var lWordCount;
        var lMessageLength = string.length;
        var lNumberOfWords_temp1 = lMessageLength + 8;
        var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
        var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
        var lWordArray = Array(lNumberOfWords - 1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while (lByteCount < lMessageLength) {
            lWordCount = (lByteCount - (lByteCount % 4)) / 4;
            lBytePosition = (lByteCount % 4) * 8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount - (lByteCount % 4)) / 4;
        lBytePosition = (lByteCount % 4) * 8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
        lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
        lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
        return lWordArray;
    }

    function WordToHex(lValue) {
        var WordToHexValue = "",
            WordToHexValue_temp = "",
            lByte, lCount;
        for (lCount = 0; lCount <= 3; lCount++) {
            lByte = (lValue >>> (lCount * 8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
        }
        return WordToHexValue;
    }

    function Utf8Encode(string) {
        string = string.replace(/\r\n/g, "\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            } else if ((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            } else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    }

    var x = Array();
    var k, AA, BB, CC, DD, a, b, c, d;
    var S11 = 7,
        S12 = 12,
        S13 = 17,
        S14 = 22;
    var S21 = 5,
        S22 = 9,
        S23 = 14,
        S24 = 20;
    var S31 = 4,
        S32 = 11,
        S33 = 16,
        S34 = 23;
    var S41 = 6,
        S42 = 10,
        S43 = 15,
        S44 = 21;
    string = Utf8Encode(string);
    x = ConvertToWordArray(string);
    a = 0x67452301;
    b = 0xEFCDAB89;
    c = 0x98BADCFE;
    d = 0x10325476;
    for (k = 0; k < x.length; k += 16) {
        AA = a;
        BB = b;
        CC = c;
        DD = d;
        a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
        d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
        c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
        b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
        a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
        d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
        c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
        b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
        a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
        d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
        c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
        b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
        a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
        d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
        c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
        b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
        a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
        d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
        c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
        b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
        a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
        d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
        c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
        b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
        a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
        d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
        c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
        b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
        a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
        d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
        c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
        b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
        a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
        d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
        c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
        b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
        a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
        d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
        c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
        b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
        a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
        d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
        c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
        b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
        a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
        d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
        c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
        b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
        a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
        d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
        c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
        b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
        a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
        d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
        c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
        b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
        a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
        d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
        c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
        b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
        a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
        d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
        c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
        b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
        a = AddUnsigned(a, AA);
        b = AddUnsigned(b, BB);
        c = AddUnsigned(c, CC);
        d = AddUnsigned(d, DD);
    }
    var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
    return temp.toLowerCase();
}
var Base64 = {
    base64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function (t) {
        if (!t) return !1;
        var a = "";
        var o, e, r;
        var f, u, s, i;
        var n = 0;
        do {
            o = t.charCodeAt(n++);
            e = t.charCodeAt(n++);
            r = t.charCodeAt(n++);
            f = o >> 2;
            u = (3 & o) << 4 | e >> 4;
            s = (15 & e) << 2 | r >> 6;
            i = 63 & r;
            if (isNaN(e)) s = i = 64;
            else if (isNaN(r)) i = 64;
            a += this.base64.charAt(f) + this.base64.charAt(u) + this.base64.charAt(s) + this.base64.charAt(i);
        } while (n < t.length);
        return a;
    }, decode: function (t) {
        if (!t) return !1;
        t = t.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        var r = "";
        var s, n, i, o;
        var e = 0;
        do {
            s = this.base64.indexOf(t.charAt(e++));
            n = this.base64.indexOf(t.charAt(e++));
            i = this.base64.indexOf(t.charAt(e++));
            o = this.base64.indexOf(t.charAt(e++));
            r += String.fromCharCode(s << 2 | n >> 4);
            if (64 != i) r += String.fromCharCode((15 & n) << 4 | i >> 2);
            if (64 != o) r += String.fromCharCode((3 & i) << 6 | o);
        } while (e < t.length);
        return r;
    }
};

// console.log( Base64.decode("aGVsbG8="))
// console.log( Base64.encode("hello"))

var _0x75y = ["161", "162", "167", "175", "177", "178", "179", "181", "182", "185", "190", "192", "195", "197", "anya error", "Anya", "window", "(\n)+", "test", "toString", "indexOf", "\u0989", "", "congratulations", "congratu|ations", "undefined", "g", "exports", "3.7.7", "function", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", "prototype", "slice", "call", "forEach", "fromCharCode", "bind", "from", "replace", "+", "-", "_", "length", "charCodeAt", "invalid character found", "===", "substring", "binary", "base64", "push", "apply", "subarray", "join", "utf8", "encode", "malformed base64.", "==", "charAt", "split", "map", "decode", "/", "defineProperty", "fromBase64", "toBase64", "toBase64URI", "toBase64URL", "toUint8Array", "string", "keys", "Base64", "Key should be 32 byte array!", "Nonce should be 12 byte array!", "_rounds", "_sigma", "_param", "_get32", "_keystream", "_byteCounter", "_chacha", "_quarterround", "_rotl", "encrypt", "_update", "decrypt", "Data should be type of bytes (Uint8Array) and not empty!", "object", "major", "model", "name", "type", "vendor", "version", "architecture", "console", "mobile", "tablet", "smarttv", "wearable", "embedded", "Amazon", "Apple", "ASUS", "BlackBerry", "Browser", "Chrome", "Firefox", "Google", "Huawei", "LG", "Microsoft", "Motorola", "Opera", "Samsung", "Sharp", "Sony", "Xiaomi", "Zebra", "Facebook", "Chromium OS", "Mac OS", "toUpperCase", "toLowerCase", "exec", "?", "NT 5.1", "NT 5.2", "NT 6.4", "NT 10.0", "Edge", " Mini", " GX", "Baidu", "DuckDuckGo", "UC", "WeChat", "Konqueror", "IE", "Yandex", "Smart Lenovo ", "$1 Secure ", " Focus", " Touch", "Coc Coc", "Dolphin", " Coast", "MIUI ", "360 ", "$1 ", " Internet", " ", "Sogou Explorer", "Sogou Mobile", "GSA", "TikTok", " Headless", " WebView", "Android ", "Mobile Safari", "Netscape", " Reality", "amd64", "ia32", "arm64", "armhf", "arm", "sparc", "OPPO", "Vivo", "Realme", "Lenovo", "Nokia", "Xperia Tablet", "OnePlus", "Fire Phone $1", "HTC", "Acer", "Meizu", "Ulefone", "Fairphone", "AT&T", "Siemens", "RCA", "Dell", "Verizon", "Barnes & Noble", "NuVision", "ZTE", "Swiss", "Zeki", "Dragon Touch", "Insignia", "NextBook", "Voice", "LvTel", "Essential", "Envizen", "MachSpeed", "Rotor", "Nvidia", "SmartTV", " TV", "cast", "Generic", "EdgeHTML", "Blink", "Windows", ".", "iOS", "Symbian", " OS", "webOS", "watchOS", "Solaris", "getResult", "navigator", "userAgent", "userAgentData", "concat", "getBrowser", "browser", "brave", "isBrave", "Brave", "getCPU", "cpu", "getDevice", "device", "Macintosh", "standalone", "maxTouchPoints", "iPad", "getEngine", "engine", "getOS", "os", "platform", "Unknown", "getUA", "setUA", "VERSION", "1.0.38", "BROWSER", "CPU", "DEVICE", "ENGINE", "OS", "UAParser", "amdO", "jQuery", "Zepto", "ua", "get", "set", "__esModule", "default", "this hasn't been initialised - super() hasn't been called", "value", "done", "resolve", "then", "next", "throw", "Cannot call a class as a function", "enumerable", "configurable", "writable", "key", "__proto__", "Super expression must either be null or a function", "@@iterator", "return", "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.", "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.", "Derived constructors may only return object or undefined", "hasOwnProperty", "iterator", "asyncIterator", "@@asyncIterator", "toStringTag", "@@toStringTag", "_invoke", "wrap", "suspendedStart", "suspendedYield", "executing", "completed", "arg", "__await", "Generator is already running", "method", "delegate", "sent", "_sent", "dispatchException", "abrupt", "normal", "The iterator does not provide a '", "' method", "resultName", "nextLoc", "iterator result is not an object", "catchLoc", "finallyLoc", "afterLoc", "tryEntries", "completion", "reset", " is not iterable", "constructor", "displayName", "GeneratorFunction", "isGeneratorFunction", "mark", "awrap", "AsyncIterator", "async", "Generator", "[object Generator]", "pop", "values", "prev", "t", "rval", "root", "tryLoc", "end", "try statement without catch or finally", "break", "continue", "complete", "illegal catch attempt", "@@toPrimitive must return a primitive value.", "symbol", "Object", "Map", "Set", "Arguments", "regeneratorRuntime", "r", "regeneratorRuntime = r", "Array", "isArray", "entries", "every", "fill", "filter", "includes", "reduce", "reverse", "some", "sort", "splice", "Date", "now", "Function", "trim", "JSON", "stringify", "assign", "create", "defineProperties", "sham", "getOwnPropertyDescriptor", "getOwnPropertyDescriptors", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "setPrototypeOf", "parseFloat", "parseInt", "Promise", "Reflect", "construct", "String", "Symbol", "f", "toPrimitive", " is not a function", " is not a constructor", "Can't set ", " as a prototype", "Incorrect invocation", " is not an object", "isExtensible", "a", "species", "foo", "Reduce of empty array with no initial value", "Cannot set read only .length", "floor", "Undefined", "Null", "callee", "fastKey", "getterFor", "size", "last", "first", "F", "index", "removed", "previous", " Iterator", "kind", "target", "state", "Weak", "add", "clear", "delete", "has", "collection", "getConstructor", "enable", "setStrong", "match", "/./", "start", "abs", "toISOString", "getTime", "getUTCDate", "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes", "getUTCMonth", "getUTCSeconds", "0385-07-25T07:06:39.999Z", "Invalid time value", "T", ":", "Z", "unsafe", "Cannot delete property ", " of ", "document", "createElement", "Maximum allowed index exceeded", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "valueOf", "NODE", "process", "Deno", "versions", "v8", "Bun/", "BUN", "Cloudflare-Workers", "CLOUDFLARE", "Deno/", "DENO", "Node.js/", "Bun", "REST", "zxcasd", "stack", "prepareStackTrace", "captureStackTrace", "global", "stat", "proto", "#", "forced", "dontCallGetSet", "Prototype", "real", "preventExtensions", "a[", "]", "C,a", "return new C(", ",", ")", "something", "number", "Number", "Math", "return this", "hasOwn", "error", "documentElement", "div", "z", "inspectSource", "cause", "meta", "O", "S", "P", "E", "objectID", "weakData", "Object already initialized", "TypeError", "WeakMap", "facade", "Incompatible receiver, ", " required", "all", "AsyncFunction", "AsyncGeneratorFunction", "normalize", "data", "NATIVE", "N", "POLYFILL", "RegExp", "stopped", "result", "that", "AS_ENTRIES", "IS_RECORD", "IS_ITERATOR", "INTERRUPTED", "IteratorPrototype", "PROPER", "CONFIGURABLE", "BUGGY_SAFARI_ITERATORS", "ceil", "trunc", "MutationObserver", "WebKitMutationObserver", "queueMicrotask", "domain", "exit", "head", "enter", "nextTick", "createTextNode", "observe", "promise", "Bad Promise constructor", "reject", "The method doesn't accept regular expressions", "-0", "08", "0x16", "b", "assign detection", "abcdefghijklmnopqrst", "script", "IE_PROTO", "<", ">", "</", "write", "close", "parentWindow", "htmlfile", "iframe", "java", "style", "display", "none", "appendChild", "src", "contentWindow", "open", "document.F=Object", "Accessors not supported", "Window", "ArrayBuffer", "[object ", "Can't convert object to primitive value", "ownKeys", "PromiseRejectionEvent", "catch", "finally", "CONSTRUCTOR", "tail", "item", "Can't call method on ", "0", "3", "__core-js_shared__", "pure", "Wrong number of repetitions", "\u200B\x85\u180E", "^[", "]+", "(^|[^", "])[", "]+$", "$1", "symbol detection", "keyFor", "isRegisteredSymbol", "isWellKnownSymbol", "wks", "for", "setImmediate", "clearImmediate", "Dispatch", "MessageChannel", "onreadystatechange", "location", "postMessage", "protocol", "//", "host", "port2", "port1", "onmessage", "addEventListener", "importScripts", "file:", "message", "removeChild", "max", "min", "[object z]", "Cannot convert a Symbol value to a string", "random", "Symbol(", ")_", "b?a=1&b=2&c=3", "https://a", "searchParams", "a=1&a=2&b=3", "pathname", "c%20d", "toJSON", "https://a/c%20d?a=1&c=3", "href", "c", "a=1", "?a=1", "https://a@b", "username", "a=b", "xn--e1aybc", "https://\u0442\u0435\u0441\u0442", "#%D0%B1", "https://a#\u0431", "hash", "a1c3", "x", "https://x", "Not enough arguments", "withoutSetter", "Symbol.", "\t\n\x0B\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF", "Error", "errors", "AggregateError", "isConcatSpreadable", "Array Iterator", "left", "v", "k", "DGBEFHACIJK", "globalThis", "stringify detection", "[null]", "{}", "\"\\udf06\\ud834\"", "\uDF06\uD834", "\"\\udead\"", "\uDEAD", "\\u", "groupBy", "ab", "No one promise resolved", "REJECTION_EVENT", "SUBCLASSING", "createEvent", "dispatchEvent", "unhandledrejection", "ok", "fail", "rejection", "Promise-chain cycle", "notified", "reactions", "Event", "reason", "initEvent", "on", "Unhandled promise rejection", "emit", "unhandledRejection", "parent", "rejectionHandled", "rejectionhandled", "Promise can't be resolved itself", "fromCodePoint", " is not a valid code point", "String Iterator", "hidden", "RangeError", "QObject", "symbols", "op-symbols", "findChild", "description", "Symbol is not a constructor", "tag", "string-to-symbol-registry", "symbol-to-string-registry", "hasInstance", " is not a symbol", "matchAll", "search", "unscopables", "metadata", "try", "asyncDispose", "customMatcher", "dispose", "matcher", "metadataKey", "observable", "patternMatch", "replaceAll", "setInterval", "setTimeout", "URLSearchParams", "Iterator", "fetch", "Request", "Headers", "encodeURIComponent", "shift", "%", "\uFFFD", "url", "parseObject", "parseQuery", "update", "Expected sequence with length 2", "&", "=", "query", "updateURL", "serialize", "body", "headers", "content-type", "application/x-www-form-urlencoded;charset=UTF-8", "n", "d", "o", "screen", "Document", "_1", "_2", "Screen", "_3", "Navigator", "_4", "SelfDefined", "_5", "Sync", "1", "Async", "2", "_aris", "bs", "^^", "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.", "canvas", "width", "height", "getContext", "2d", "toDataURL", "rect", "isPointInPath", "evenodd", "textBaseline", "alphabetic", "direction", "ltr", "textAlign", "fillStyle", "#f60", "fillRect", "#069", "font", "11pt \"Times New Roman\"", "Cwm fjordbank gly ", "fillText", "rgba(102, 204, 0, 0.2)", "18pt Arial", "unstable", "clearRect", "globalCompositeOperation", "multiply", "#f2f", "#2ff", "#ff2", "s", "beginPath", "arc", "PI", "closePath", "e", "#f9c", "00000000", "byteLength", "setAttribute", "id", "ads", "getElementById", "destination", "maxChannelCount", "numberOfInputs", "numberOfOutputs", "channelCount", "channelInterpretation", "channelCountMode", "sampleRate", "webkitPersistentStorage", "webkitTemporaryStorage", "webkitResolveLocalFileSystemURL", "BatteryManager", "webkitMediaStream", "webkitSpeechGrammar", "documentMode", "productSub", "20030107", "netscape", "chrome", "ucapi", "InstallTrigger", "StyleMedia", "opr", "addons", "opera", "safari", "[object SafariRemoteNotification]", "pushNotification", "orientation", "angle", "availWidth", "availHeight", "Mozilla", "miniprogram", "__wxjs_environment", "via", "OfflineAudioContext", "webkitOfflineAudioContext", "createOscillator", "createAnalyser", "createDynamicsCompressor", "threshold", "knee", "ratio", "reduction", "attack", "release", "sine", "connect", "oncomplete", "frequencyBinCount", "getFloatFrequencyData", "disconnect", "startRendering", "t0", "stop", "battery", "webkitBattery", "mozBattery", "msBattery", "charging", "chargingTime", "level", "dischargingTime", "getBattery", "top", "14px 'Arial'", "rgba(102, 204, 0, 0.7)", "rgba(255,255,255,1)", "onload", "drawImage", "getImageData", "Webkit", "Gecko", "Safari", "connection", "zoom", "resize", "text-rendering", "text-align-last", "-webkit-hyphens", "anya", "log", "\"function log() {\\n    [native code]\\n}\"", "\"function log() { [native code] }\"", "__IE_DEVTOOLBAR_CONSOLE_COMMAND_LINE", "__BROWSERTOOLS_DOMEXPLORER_ADDED", "Image", "__defineGetter__", "downlink", "offsetHeight", "mediaDevices", "enumerateDevices", "deviceId", "@script", "RTCPeerConnection", "mozRTCPeerConnection", "webkitRTCPeerConnection", "onicecandidate", "candidate", "createDataChannel", "createOffer", "setLocalDescription", "t1", "eval", "monospace", "sans-serif", "serif", "sans-serif-thin", "ARNO PRO", "Agency FB", "Arabic Typesetting", "Arial Unicode MS", "AvantGarde Bk BT", "BankGothic Md BT", "Batang", "Bitstream Vera Sans Mono", "Calibri", "Century", "Century Gothic", "Clarendon", "EUROSTILE", "Franklin Gothic", "Futura Bk BT", "Futura Md BT", "GOTHAM", "Gill Sans", "HELV", "Haettenschweiler", "Helvetica Neue", "Humanst521 BT", "Leelawadee", "Letter Gothic", "Levenim MT", "Lucida Bright", "Lucida Sans", "Menlo", "MS Mincho", "MS Outlook", "MS Reference Specialty", "MS UI Gothic", "MT Extra", "MYRIAD PRO", "Marlett", "Meiryo UI", "Microsoft Uighur", "Minion Pro", "Monotype Corsiva", "PMingLiU", "Pristina", "SCRIPTINA", "Segoe UI Light", "Serifa", "SimHei", "Small Fonts", "Staccato222 BT", "TRAJAN PRO", "Univers CE 55 Medium", "Vrinda", "ZWAdobeF", "fontSize", "48px", "visibility", "span", "position", "absolute", "fontFamily", "textContent", "mmMwWLliI0O&1", "'", "',", "offsetWidth", "webgl", "experimental-webgl", "getExtension", "WEBGL_debug_renderer_info", "getParameter", "UNMASKED_VENDOR_WEBGL", "UNMASKED_RENDERER_WEBGL", "webdriver", "body not ready", "srcdoc", "blank page", "parentNode", "(", "WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv|.0.0.0)", "|", "ig", "iPhone", "CrOS", "compatible", "MSIE", "Trident", "rv:11.0", "MSIE (\\d+\\.\\d+);", "DeviceMotionEvent", "ongestureend", "getItem", "_fmaa", "requestPermission", "https://xx.com", "private", "gesture", "localStorage", "openDatabase", "setItem", "fmTest", "removeItem", "RequestFileSystem", "webkitRequestFileSystem", "TEMPORARY", "storage", "estimate", "queryUsageAndQuota", "quota", "usage", "onerror", "onsuccess", "serviceWorker", "indexedDB", "onupgradeneeded", "createObjectStore", "put", "deleteDatabase", "HTMLElement", "PointerEvent", "MSPointerEvent", "baidu", "functioncreateElement(){[nativecode]}", "functionparse(){[nativecode]}", "parse", "functionRegExp(){[nativecode]}", "language", "languages", "MediaSettingsRange", "RTCEncodedAudioFrame", "[object Intl]", "Intl", "[object Reflect]", "userLanguage", "browserLanguage", "systemLanguage", "msMaxTouchPoints", "matchMedia", "(min-width: ", "innerWidth", "px)", "matches", "mimeTypes", "suffixes", "~~", "__nightmare", "phantomjs", "callPhantom", "_phantom", "phantom", "plugins", "filename", "_Selenium_IDE_Recorder", "callSelenium", "_selenium", "__webdriver_script_fn", "__driver_evaluate", "__webdriver_evaluate", "__selenium_evaluate", "__fxdriver_evaluate", "__driver_unwrapped", "__webdriver_unwrapped", "__selenium_unwrapped", "__fxdriver_unwrapped", "__webdriver_script_func", "$cdc_asdjflasutopfhvcZLmcfl_", "sessionStorage", "getFullYear", "getTimezoneOffset", "ontouchend", "Microsoft Internet Explorer", "appName", "MSIE ([0-9]{1,}[.0-9]{0,})", "readPixels", "RGBA", "UNSIGNED_BYTE", "wegbl", "createBuffer", "bindBuffer", "ARRAY_BUFFER", "bufferData", "STATIC_DRAW", "itemSize", "numItems", "createProgram", "createShader", "VERTEX_SHADER", "shaderSource", "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}", "compileShader", "FRAGMENT_SHADER", "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}", "attachShader", "linkProgram", "useProgram", "vertexPosAttrib", "getAttribLocation", "attrVertex", "offsetUniform", "getUniformLocation", "uniformOffset", "enableVertexAttribArray", "vertexPosArray", "vertexAttribPointer", "FLOAT", "uniform2f", "drawArrays", "TRIANGLE_STRIP", "itsgonnafail", "_6", "_7", "_8", "_9", "runtimeInvoke", "h", "i", "j", "l", "m", "p", "q", "u", "w", "y", "_runtimeInvoke", "<!DOCTYPE html><p>Hello World!</p>", "cdc_adoQpoasnfa76pfcZLmcfl_Promise", "cdc_adoQpoasnfa76pfcZLmcfl_Array", "cdc_adoQpoasnfa76pfcZLmcfl_Symbol", "refresh", "useDocument", "useWindow", "useScreen", "useNavigator", "useSelfDefined", "asyncFields", "syncFields", "keyList", "xxzlxxid", "xxzlbbid", "xxzlclientid", "gap", "_getItem", "(^| )", "=([^;]*)(;|$)", "cookie", "_reCheckCookie", "_setItem", "setTime", "SameSite=None; Secure", "; expires=", "toUTCString", ";domain=", ";path=/;", "cookieStore", "change", "deleted", "xxzltid", "newValue", "querySelector", "meta[name='", "']", "content", "getAttribute", "MozMutationObserver", "childList", "removedNodes", "proxy", "Proxy", "_proxy", "storages", "findMostFrequent", "_observe", "fzq_h", "fzq_q", "FileReader", "Blob", "FormData", "[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]", "isView", "Invalid character in header field name: \"", "\"", "append", "bodyUsed", "Already read", "readAsArrayBuffer", "buffer", "_initBody", "_bodyInit", "_bodyText", "_bodyBlob", "_bodyFormData", "_bodyArrayBuffer", "text/plain;charset=UTF-8", "blob", "could not read FormData body as blob", "arrayBuffer", "byteOffset", "text", "readAsText", "could not read FormData body as text", "formData", "json", ", ", "DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT", "Please use the \"new\" operator, this DOM object constructor cannot be called as a function.", "credentials", "mode", "signal", "same-origin", "referrer", "Body not allowed for GET or HEAD requests", "no-store", "cache", "no-cache", "$1_=", "_=", "status", "statusText", "clone", "redirect", "Invalid status code", "DOMException", "aborted", "Aborted", "AbortError", "abort", "getAllResponseHeaders", "\r", "\n", "substr", "responseURL", "X-Request-URL", "response", "responseText", "Network request failed", "ontimeout", "onabort", "include", "withCredentials", "omit", "responseType", "Content-Type", "application/octet-stream", "arraybuffer", "setRequestHeader", "readyState", "removeEventListener", "send", "polyfill", "Response", "t2", "xxid", "ay", "ad", "vn", "PC", "M", "SUCCESS", "000", "success", "ERROR", "SUCCESSALREADY", "success already", "ERRORALREADY", "error already", "appkey", "devicetype", "subType", "token", "signToken", "https://aris.58.com/web/api/gather", "?appkey=", "&version=", "&devicetype=", "&subType=", "&token=", "&signToken=", "&t=", "post", "NOT_EXIST", "lastUpdatTime", "pfmb", "isBBidReusable", "chooseBBid", "getDowngradedId", "_getOriginalId", "be", "_getDeviceInfo", "colorDepth", "SERIALIZE_ERROR", "PROCESS_ERROR", "ENV_TYPE", "WX", "WEB", "SWAN", "ALIPAY", "TT", "QQ", "UNKNOWN", "GET_CONFIG", "1001", "GET_TABLE", "1002", "GET_OUTER", "1000", "UPDATE", "1004", "SIGN", "1003", "SERIALIZE_KEYID", "1012", "SERIALIZE_TABLE", "1016", "SERIALIZE_ISTATE", "1013", "SERIALIZE_OSTATE", "1015", "__assign", "__awaiter", "__generator", "Generator is already executing.", "label", "ops", "trys", "__importDefault", "d0", "di", "dk", "yEOMxYhyhhyhYyLm", "request", "istate", "ostate", "keyId", "init", "getEnvOptions", "options", "fetchRemoteKeys", "getCid", "getUniq", "config", "boxes", "serializeBox", "exip", "getOsInfo", "code", "track", "\u62C9\u53D6\u914D\u7F6E\u51FA\u73B0\u672A\u77E5\u5F02\u5E38", "report", "createHmac", "HMACSHA256", "K", "Hash", "blockSize", "digestLength", "temp", "bufferLength", "bytesHashed", "finished", "clean", "can't update because hash was finished.", "finish", "digest", "_saveState", "_restoreState", "inner", "outer", "\u65E0\u6CD5\u5728digest\u4E4B\u540E\u8C03\u7528update,\u8BF7\u91CD\u65B0\u521B\u5EFA\u5B9E\u4F8B", "__extends", "Class extends value ", " is not a constructor or null", "cid", "uniq", "useReport", "checkEncoding", "update encoding\u683C\u5F0F\u6821\u9A8C\u5F02\u5E38,E:update(data: Uint8Array | string, encoding?: hex | base64 | utf8) ", "hex", "hexToUint8Array", "Base64ToUint8", "stringToUint8Array", "Update\u8C03\u7528\u5F02\u5E38,\u8BF7\u786E\u8BA4\u5165\u53C2\u4EE5\u53CA\u7F16\u7801\u7C7B\u578B\u662F\u5426\u4E00\u81F4", "digest encoding\u683C\u5F0F\u6821\u9A8C\u5F02\u5E38,E:digest(encoding?: hex | base64)", "base64ToHex", "Uint8ToBase64", "uuidv4", "\u7B7E\u540DSDK\u8C03\u7528\u5F02\u5E38", "sha256", "Api", "https://oyster.58.com/v2", "/wb/getConfEncry", "/wb/rep", "fetchOption", "fetchTables", "fetchTable", "fetchRemoteConfig", "useRequest", "data status error", "fetchRemoteTables", "authorization", "\u67E5\u627E\u8868\u6570\u636E\u957F\u5EA6\u5F02\u5E38", "serializeOState", "serializeIState", "serializeKeyId", "bytesToString", "Uint8ToInt32", "xxzl_cid", "_Wbox_UNIQ", "remove", "unit8ArrayToUtf8", "getRunEnvironment", "getSystemInfo", "v4", "fromUint8Array", "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx", "getSystemInfoSync", "brand", "system", "ENCRYPT", "DECRYPT", "blockCount", "getInstance", "blockOperation", "iv", "instance", "getPaddingLength", "pkcs7Padding", "TyiBoxes", "TBoxes", "InvTBoxes", "InvTyiBoxes", "AppTable", "pad", "bytes", "encryptor", "decryptor", "unpad", "shiftRows", "header", "statusCode", "env", "count", "requestMethods", "ENCODE", "1010", "DECODE", "1011", "getStorageSync", "setStorageSync", "removeStorageSync", "storageMethods", "xxzlcid", "getOptions", "updater", "\u79D8\u94A5\u957F\u5EA6\u5F02\u5E38", "lock", "observer", "timer", "line", "appTable", "boxesAdapter", "Tables\u83B7\u53D6\u5F02\u5E38", "encryptCore", "decryptCore", "keyIdAdapter", "getKeyId", "releaseKeyId", "Unit8ArrayToUtf8", "Base64ToUtf8", "Uint8Array", "Array contains invalid value: ", "unsupported array-like object", "0123456789abcdef", "AES must be instanitated with `new`", "_prepare", "invalid key size (must be 16, 24 or 32 bytes)", "_Ke", "_Kd", "invalid plaintext size (must be 16 bytes)", "invalid ciphertext size (must be 16 bytes)", "Cipher Block Chaining", "cbc", "invalid initialation vector size (must be 16 bytes)", "_lastCipherblock", "_aes", "invalid plaintext size (must be multiple of 16 bytes)", "invalid ciphertext size (must be multiple of 16 bytes)", "Counter must be instanitated with `new`", "_counter", "setValue", "setBytes", "invalid counter value (must be an integer)", "integer value out of safe range", "invalid counter bytes size (must be 16 bytes)", "increment", "PKCS#7 invalid length", "PKCS#7 padding byte out of range", "PKCS#7 invalid padding byte", "createUint8Array", "padding", "pkcs7", "ModeOfOperation", "D", "W", "wEncrypt", "wHash", "scheduleEncrypt", "scheduleHash", "deserialize", "randomIv", "cipter", "hardEncode", "processer", "nightmareJSImplement delay", "_internal", "isGenerated", "dyms", "te", "_beforeHooks", "token error", "_exec", "_afterHooks", "info", "tid", "getInternalBBid", "generated", "cd", "xxxxxxxx-xxxx-4xxx-yxxx-", "7", "8", "9", "15", "17", "20", "23", "25", "27", "28", "29", "31", "32", "33", "34", "35", "36", "37", "46", "48", "49", "52", "54", "55", "57", "59", "61", "63", "68", "70", "73", "74", "78", "79", "80", "81", "84", "88", "93", "94", "95", "96", "98", "99", "102", "106", "107", "110", "111", "113", "114", "115", "116", "118", "121", "123", "124", "125", "128", "129", "133", "134", "135", "136", "137", "139", "142", "145", "146", "149", "152", "155", "158", "159", "160"];
(function (myArr, num) {
        var arrDerangement = function (nums) {
            while (--nums) {
                myArr.push(myArr.shift());
            }
        };
        arrDerangement(++num);
    }
)(_0x75y, 0x10);

var csts = MD5;

function getTime() {
    return new Date().getTime() + Math.floor(Math.random() * 900000) + 100000;
}



!function () {

    function fzq_map() {
        this.keys = new Array();
        this.data = new Object();
        this.set = function (key, value) {
            if (this.data[key] == null) {
                if (this.keys.toString().indexOf(key) == -1) {
                    this.keys.push(key);
                }
            }
            this.data[key] = value;
        }
        ;
        this.get = function (key) {
            return this.data[key];
        }
        ;
        this.has = function (key) {
            if (this.data[key] == null) {
                return false;
            } else {
                return true;
            }
        }
    }
    ;

    function fzq_task() {
        var ps = '';
        var mp = new fzq_map();
        window.fzq_h = 'fb4fad78f24325a53c81a70ba609de7c_1740851432322_e05037bfca704901aefe1b2eed6ced33_47924967286117483910906092582321190872';
        mp.set('namespace', 'zhaq_pc');
        mp.set('time', (new Date().getTime()).toString());
        // var fzq_t = document.createElement('iframe');
        // fzq_t.setAttribute('style', 'display:none');
        // fzq_t.setAttribute('name', 'fzq_im');
        // document.body.appendChild(fzq_t);
        // var info = document.getElementsByName('fzq_im')[0];
        mp.set('winhy', "[object History]");
        mp.set('navae', window.navigator.appCodeName);
        mp.set('navif', window.navigator.isPrototypeOf.toString().replace(new RegExp('\\s+', 'gm'), ''));
        mp.set('ietg', undefined);
        mp.set('fzq_h', window.fzq_h);
        if (mp.has('navif'))
            ps += mp.get('navif');
        if (mp.has('time'))
            ps += mp.get('time');
        if (mp.has('fzq_h'))
            ps += mp.get('fzq_h');
        if (mp.has('namespace'))
            ps += mp.get('namespace');
        if (mp.has('winhy'))
            ps += mp.get('winhy');
        if (mp.has('navae'))
            ps += mp.get('navae');
        if (mp.has('ietg'))
            ps += mp.get('ietg');
        window.fzq_q = csts(ps) + '_' + mp.get('time') + '_138';
        // localStorage.setItem('fzq_h_zhaq_pc', 'fb4fad78f24325a53c81a70ba609de7c_1740851432322_e05037bfca704901aefe1b2eed6ced33_47924967286117483910906092582321190872');
    }

    fzq_task();

    if (window['1740855813118']) {
        window['1740855813118']();
    }
}();


var _fX = {
    "appkey": "10293",
    "t": "03fe1a1b460e451098a5945bbe7a23a1",
    "version": "1.10.1",
    "devicetype": "3",
    "subType": 30
}
var cookies = {
    "xxzltid": "4RI7olXpE4J8fOhlDx5hOwQhRUkdzEoyoROYy93/Pp8="
}


function _0x75y_1299() {
    var _a761 = [_fX[_0x75y[1280]], _fX[_0x75y[1279]], _fX[_0x75y[76]], getTime(), cookies[_0x75y[1157]], window.fzq_h, window.fzq_q].join(_0x75y[980]);
    return Base64.encode(_a761);
}

var _B9 = function (_a97) {
    var _f18 = Array[_0x75y[15]];
    var _b60 = _a97[_0x75y[43]];
    return _a97 === _f18 || (0,
        _d27)(_f18, _a97) && _b60 === _f18[_0x75y[43]] ? _e22 : _b60;
}

function _0x75y_1298() {
    return "noWorke";
    var t, e, r = [_fX[_0x75y[1280]], _fX[_0x75y[1279]], _fX[_0x75y[76]], "0", getTime(), window.fzq_h, window.fzq_q],
        n = [
            "pfmxz2lgWkeMb0pnZjvKufJFin261S3BTw6xL41Ox1DzX/hgegB96DZvzDXZt5Q+9pIh",
            "6881fd9b-ee29-4afa-864e-1740852007062",
            "Win32",
            "Windows",
            "10",
            "Chrome",
            "133.0.0.0",
            "1282^^3404",
            24,
            "70ca18d1f77a534dee9241304d1b122e",
            "caf2e87c198c76bfeb45c60fe7c5db18^^3e9bcb9755458957c6f1bf2055b07d69",
            "32dad91fa53db033979c0b42ae0fa45c",
            "f251df1b349b73eb9f09ede0ed4178be"
        ],
        i = (0, _B9)()(t = (0, _t12)()(e = [])[_0x75y[17]](e, r, (0, _eK)()(n)))[_0x75y[17]](t, function (t) {
            return void 0x0 === t ? _0x75y[6] : t;
        })[_0x75y[36]](_0x75y[980]);
    return Base64.encode(_0x75y[38])(i);

}

function _0x75y_1297() {
    return cookies[_0x75y[1157]] ? _0x75y_1299() : _0x75y_1298();
}

function getbbid() {


    var _a759 = _0x75y[1295];


    _a759 += _0x75y_1297();
    console.log(_a759);
    return _a759;

}


getbbid()

由于我没有解密js  所以很多参数 我都固定了  不过这些参数 都是可以找到的  最后 其实这个xxzlbbid 处理 置空也是不影响请求的!!!具体的自己去测

篇幅有限其他的大致看了一下 应该没有什么什么东西了 接下来看看密码是怎么加密的吧 来次够~~

在点击登录之后  会出现一个表单, 搜了一下这个表单的ID

mobileLogin_v20250111114837.js 进到这个文件 再搜一下 password  结果出现很多地方  二话不说 全部下个断点  哈哈

最后在这里断下 

r.encrypt() 这个应该就是加密的地方了

跟到了这里 出现了一个 rsaModulus 去上层堆栈搜一下

果然 在这里  接下来 就是扣算法 或者直接调用RSA库了  入参:

1411093327735 - (new Date).getTime()+(new Date).getTime() +密码

上面这个 应该可以简写成  1411093327735 +密码  我猜如果这个值有差别的话 可能就会被判定位 不太正常的用户

加密结果一致!

总的来说 有意思的地方 是它的思路,重要的不是在密码的加密上  是在风控的参数的花了很多心思,分析下来  风控的点还是挺多,就连那个密码加密的时间戳拼接都是小心思!懂得都懂!

本博客的免责声明如下:

对于博客中提供的信息的准确性和完整性,本博客不作任何明示或暗示的保证。读者在使用这些信息时,必须自行进行判断和核实。

本博客可能包含与其他网站的链接,这些链接仅供方便读者参考。本博客对这些网站的内容和可靠性不承担任何责任。

本博客中的观点和评论仅代表作者个人观点,不代表本博客的立场和观点。

读者在使用本博客提供的任何信息或建议时,应自行承担风险。本博客不对因使用这些信息或建议而产生的任何损失或损害承担责任。

本博客保留随时修改或更新免责声明的权利。

请您在阅读本博客的内容时,谨慎判断和使用信息,并同意本免责声明的条款和条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值