有道js逆向(webpack,调用crypto库实现)【超级详细】

 

目录

一.逆向请求参数

全局搜索sign:

二.解密返回参数

1利用node.js 内置密码库crypto

2利用webpack工具半自动扣js


 

话不多说,直接干

接口:aHR0cHM6Ly9kaWN0LnlvdWRhby5jb20vd2VidHJhbnNsYXRl

一.逆向请求参数

有道js逆向(webpack,调用crypto库实现)【超级详细】_第1张图片

 有道js逆向(webpack,调用crypto库实现)【超级详细】_第2张图片

通过多次请求发现 只有sign和mysticTime(时间戳)是变化的,

sign有32位,估计是MD5加密,到底是不是,还得打断点调试一下。

请求加密参数sign:a13c54dae610f25771a9922819f840e8

全局搜索sign:

这个位置很明显打上断点,进去看看,很明显标准MD5加密

有道js逆向(webpack,调用crypto库实现)【超级详细】_第3张图片

 加密参数如下:

`client=${l}&mysticTime=${e}&product=${d}&key=${t}`
'client=fanyideskweb&mysticTime=fsdsogkndfokasodnaso&product=webfanyi&key=1680856846833'

有道js逆向(webpack,调用crypto库实现)【超级详细】_第4张图片

 

通过测试key是写死的fsdsogkndfokasodnaso

直接进行请求就可以了

import requests
import hashlib
import time
localtime = str(int(time.time() * 1000))
data = "client=fanyideskweb&mysticTime={}&product=webfanyi&key=fsdsogkndfokasodnaso".format(localtime)
sign = hashlib.md5(data.encode(encoding='utf-8')).hexdigest()#python中的MD5 加密
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Referer": "https://fanyi.youdao.com/index.html"
}
cookies = {
    "OUTFOX_SEARCH_USER_ID": "[email protected]",
    "OUTFOX_SEARCH_USER_ID_NCOO": "86107500.53660281"
}
url = "https://dict.youdao.com/webtranslate"
word = input('请输入翻译内容:')
data = {
    "i": f"{word}",
    "from": "auto",
    "to": "",
    "dictResult": "true",
    "keyid": "webfanyi",
    "sign": sign,
    "client": "fanyideskweb",
    "product": "webfanyi",
    "appVersion": "1.0.0",
    "vendor": "web",
    "pointParam": "client,mysticTime,product",
    "mysticTime": localtime,
    "keyfrom": "fanyi.web"
}
response = requests.post(url=url, headers=headers, cookies=cookies, data=data).text
print(response)

 返回加密数据成功c4aaff6e6c9d477995c4eb68ee829657.png

 

 

二.解密返回参数

返回数据加密,可以通过hook找JSON.parse 这里有道给出了解密接口位置(有点猖狂了)

 hook脚本:

var my_parse = JSON.parse;
JSON.parse = function (params) {
     debugger
    console.log("json_parse params:",params);
    return my_parse(params);
};

 有道js逆向(webpack,调用crypto库实现)【超级详细】_第5张图片

 就是这个地方密文变成明文cd5606d5c5054f159bd23f7a07a9327d.png

 cd0d42a59b5e48c099be01451c8da53b.png

 

 进入nn["a"].decodeData 

接下来直接扣下js去执行

其实看到了c.a.createDecipheriv  aes-128-cbc,就可以用node中内置的加密库crypto库去执行

2d588c85efd946e58fe7058a9dccc0fe.png
解密需要key和iv,多次测试发现O,N没变

我们全局搜索decodeData

发现是写死的O=>key  N=>iv

有道js逆向(webpack,调用crypto库实现)【超级详细】_第6张图片

 

1利用node.js 内置密码库crypto

 

const crypto=require('crypto')

const o = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl';
const n = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4';
 T = (t)=>{
        const a = Buffer.alloc(16, crypto.createHash('md5').update(o).digest())
      , r = Buffer.alloc(16, crypto.createHash('md5').update(n).digest())
      , i = crypto.createDecipheriv("aes-128-cbc", a, r);
    let s = i.update(t, "base64", "utf-8");
    return s += i.final("utf-8"),
    s
}

var data = 'Z21kD9ZK1ke6ugku2ccWu4n6eLnvoDT0YgGi0y3g-v0B9sYqg8L9D6UERNozYOHqbBfzK6Xzrr9D-JWITYK25LvQDZCC0OlEEvd20o_ZiEEuK65tg23dMhRrxqhqtxIrNzG07ztorX1tqTAjjktXkt3fOARrt6bIzsA_YgrJf32giJ1wqwn5herSUYkCNbHAOMwJ3nEbEm--XU1H-6r2wUOUBxioOIwyZKAL52E-sABmPS6ou8TElc7wHs1FJFJTkek3wThbdDa_RhyHkEiaTlA2grMeaXZJH1b_R81RbQuOVedJQvtilpnJnlz5TR8Grr1SZ1RLrEFy-miNjMJTmU_o5tqTUfyQysveYv1CYML6TOwNLIRhQN2P0WbFFAY6LU9jlpkZ589g2UJyeIIvafqpbtJHlZ3l92etNaYGrokV07mdu3zNX02bvhVhRHylYMYcEC24RcYtBNRfkA5lAJPxsPKOacfqsHOZAn1zThvCkhzfdHegfgyRhPtF92dhTwGm7yiL4t_EoFWOxZNkB8d82WjnrUrq8jUMrMP-J3gUAwL7CD9aVoWmQUolFQK_8HOemua_saZiis0O7M6lq3ghoOL3prkXwuzznJybEFQj06EfSogAG6lmE7Rh1aOTSVQ1PEF_4V3UJurHE3b1I7yj2_M8zP6rEndJjly4LpqSbRME8ME7JT6heZipLVjgwcgkNpX5xbpdYE8zrwSfEPiHTfl094t6TfI0-Gavi3eZj7TaMNAPDAQ5wACfbTq0-LxzA1_htFQemIaxl5bZAtM9waNQanbVaLfQ8ZCdWvWIIq9pxgxEOTCRzaCzMg8fmtxfLCHOIMfUAKRWNssJo8J_hTm49Ec_PcOehIxifKnZjR4ie73FUs8RxCfFotzjHubvF1nt-Y209eR1XVo3zJBpeleGPXJm4wxz3_21ZZPul2ZTcHhbu7HFsYHKYx88o9CaOFyLwXcy2xbJcqWbYcHNpbYm2J96s-Ag8DHEQcW-eLZwCzRfeveV2Z3CK1RcS8-MvbgcJtPuqKtqfVPJaBdG3aF7Ilyb7VRQZ2Ymw4J7iRYL6F6fioFwCht9sN8vYBqcFvDJtMSBdeEL1btu1h3W_dWI8UC5KHRGjg0_ckjbuY7XSaoBnojXo89wN6gy-Lnzs8q-E8y6Yf-elvjgJqT4kTruc_g0W_bjebZIAzaNM-FZtc5f3CQo8ILPzvCXTMzl2EmtN-EevrUlYZaF1F4AKsCejtvC4emJvOluf5ctdu-lN7P0WkjICzIXwMZ9d9oTk2byhZAoSwHo5hr21b_ZcBPPBbNDuRrt3liaZfW5IOifyZdRBoXPkWUfsIlNc-72yLNx93B2cohKKEtYmdMankxBYRvYKPM-GOzfyt4_lvMybr_GMbZe0S5EEYM_d0opLKXfnUzoS-klHpbSmQQB49X_MSNmdmm6M5k10FxJ8QGjB9U2ouKWsopJkg8iuz4WOT9i_j8eRZQHFW75zWEC5aqHyJ-Hfs3bNeQP62UI-B1HvAo76Yx0FxYhcTVLvUBwOUc6kOlB-XYj9jQx56lQoIGFjYYySnSh3U-b_76IkgK_y9kmVIlx2G-vzkXt7-tQDZQopu2NnvIlrhA-ZDI0E83s_QFstzLSWlEftUn25d0Qzf48QSQFlClkY8XzAZxjGa-bmkMPpZ0Sfh2IOXZjpHiO6uLLHnrzP0Qeo9eAyFtVgLMWnhmeoayzfzL98s9zTo37YMJ6NvAAFZ-1HSPnwi8-0llfBh61OxhDC9dJCzY_nQRdQMEOBc8Yy-epfMHhM5TAezBeFzv5dLqWRlnZ97GwhPFzkg_Jk4ON1dCpR5881Uq6W1dfVwQ5OAQaCTBOmej8T1SaSxNHfQ3D2qRF28sD70R19BCuSj3GtRfXFS9T8tKef-7a7JL0H_9jVdOK14xNk0d2qX3DwuC157n-jhausBpuf4Nq_z-ZahCq2Rs7GOoA-cxwqkXLeTWPloPUeD6OmKAFvKz1A0hApmZnQoG25NMY1KtTJBpaFnJFNA8YcgsIj7vJpFoT5FZxVwNNp4dkznoDKn-CYacdPaFg4ctMJwhSJxS955RYfBO3wf4YLcfIExue0t25gJRBKyOd-3VYYdLRYwsK_u4f31B8rWbVOFl1Aw-YCDLQ9M8iPdBoosBddg-KQl43NJmzdnT4MKGyVv_FvK8fOJy7IO0PjZ3yQCmZHfNaIlk4ON52u3z8FaLv525BCnySLKylm5_w5_g7TzwGQEZxhRYyUeAxAwakC2ablU-Lntnyf17L7ILCkBmcrp2L_TSc4wyT_3aEeas6RJnTjwm4si9jiPP4Bdne7GG_-jiNjdwE4-2WlmrSp5sNzXqEXMlS7_ZjSju1Jo93L0rzeR_XYjeZw7iZeT70ZY2mwYrsaZPVUGgzKoI0UfPlHa2yLDtVK3DuinJ4usoAQSRM9EeiG-nkUUKx58K8p4lY4Kc6lpkPpfzXUNl8p1FkAPA-FS2fGYKQdLu86uCOXfPLzePjelbjD6QUWCwFKuQ7iN6xcVQSsuD0WRJzwrKPzn1P_z6fUg9YJ3zeXMD9r0apfFNeJbZjzluqfCLMSld5xDKD1bRG-i43CnM_-fPQT-aI8-QPjc0qTH9PgG-eswPNEnL_-AElsHPZ0B0lcXtJFOXucCIbFfCm5GQFMU1lY0b0UWyAg1mrevi6ckmBcLUCpmmODWY2Z_TYMYcYSlBeXYh8xkROr0tCPiRkYanT0cRWGSkuiEPopi5TA-3lS9KYNOmNSNAbjO4nbxPdMestAOR1xVLXKHizKy_pzVBge46E-Dh8hmUg3kbLEVLibiooEwJpWqC5zLzwKB-8rEbXxWHEjSNFS-q0nJFlssMRU5mDgOKkUiX6W-X5tZne5kiTqPcdL3mrnVoeZLY6JAlH9UvE3EdqL7dnm_QVM5B5aAhzJcFKWyT6v4jQSbWwD89MAlc-xvGIIXkG2uWDpX5xsscMkcncvHE4KhekOJBPq6kymVG-rO3KMPQhWXsYJbwVO5Vt8wO1XnkQkzn74sYd-Ewa38BSHH4pyL_yfRhhV95d5txn14xuxeHYDEVjLW8-l23xtxDhT_aHQIWjoSnfHIARE2xmphUNzcBrAOLUzWNXXAIT8IghLeJk3n5zozv-ctKu9OHikni9F3SlNhIySkSIDMWtiAtKgtj3N1tvW829s3yCZGtyiUWUKrhr5qDP39vpc6v0RE1OxxYd3OGLTxkeCTCDo4GFRKvauIVQGFRpDmBs0fNZdZRYnp9pAbj8Ext-FL2Rd7PP5N8X0fxAUJ6oVwNOamD_qSgRp2w1yjF93--ma9Lw0P_4BSz-fgtWdRRuc-sEQvxiT5o4BmuE-eXrS4571rQPClKK9Ea_RRIxrIJ03073wXxlzbRwhi3RlhQYLSKFLf6EQbEcUnfwFcb94WDcRXmh-XoNPOYf5s7CgsWC3TpYqsjMss3qKxsKC6qP2JOb6Fw31W8PCBxNitOhpj1INcxa1BpFMgI2ae0LGq_wqh70JdReHhvNkbW3ZW0Zd_6uINHJNgyA5xxoejmT2u9hPBnn_tze4PQsGJ4GMXVx_ENyFG9o_a5qLcBnkl-QAdXVIygfnm7_1c3PmPsIrr5OVNsLaxx-DFfbaTcy3Br0lJ3QaNPYHEG1ivaYk8jITOP-lN94y3fbhj45K44GTyQqvNuzQ8r2C_cpy02LDU9jwLFksMfVDikwKiwg-9kxE0qtZNcltChpvewuuK24ir8NOQgTyE0QTIKG9qvQP88qtGhcF906Sd1ODv7-2SA23e68buVl7EpGfwdn9_Dit-rW5dVQuRnr0_P1ggtcHCf6Nbn3ggenuRH2myS7syuTj5qr0OvCLB6TvUhH8Z6P8-IugxcdCp2u6IwMCL0PjlK6gSHvs2zFpt9m3BULPfHPo9dvEqJzoCivWkTPElzgHiGGe-uwKgqoPPPZyuInfwuzj41UJbV-3j8mVoo0Zo8PV4Tb9qsqXmZPKYopepw4wFIwY1kJbM1bBXitVqE1dGcs-VdTzZmYQEAcnPntuOy_S2dHaZB38O-oe9PVhsaaGf_EPmA3JLRClt799JenkIg7DH7C71-bRb1MDnTLMoA8dJiJ8bKrG_WCTKsWC_IHDsVjvTMinOm4Px1mZtxJdEgqLrmyGMfkkv_dvCLHzSSv8twg-torix4SGaoofEUFT85hGH_79jCnnoSGaLrYRMA8WEl_lVj97BoHdcXxG5DpdQbvg3KZ7v7xKVhnWVHRVAnZ5tN_lHn2cpIH7qMpovXDXWCL5joKi8ou-hiESMgtiBsbkSae4r2eJ9K4BB8q0HdqPxCE-MnxoFf8PGxkSn1mJidlYD1vLyBButE-tTuaH3QcGd7NBuitoOQnYxbUVyb0kcwx2ZHgtU4kiSLAYNaBlxQ7gs813-NBFtYhOgdKW5O0RK-F7dxVWoWXp-TV2_TmJpYcSmo3o3HpEJw43l5tlmuctv47a_-0WsnwHub9ldFD5ztzRQRWZS29i5vobzu9T-k1lj3iPrv3cDBZaTtqmtacT70WbR9Z6EQbDCzcYoPHHfiDJY_QlvpUc6PE83xK4PVl2R-Gl8TUcGbVWbly0TFPH-V4epfiQO-ziKhpHrhR-n1d54QCyhYg1Au_08_pJNAOmVLZ8n2etqVOG57TFwYZQUAav9-u0oT3sjk7UB-T7u5be-2mvnbziVRzstYrvBX5Yypxq79SIeRK91bIt8HqpKZ4crY3c9jlQPoewI6sFFMdfJvEPbfQTZk5CBJMnROB5AnFhoy4Y8ooqDODST1Z7_3xqbTXgx3VyUGlfCSvjbR38ZQZdAR25td82vOIDtoUNJ9jbkPJoxzxfkpmSyYwRSb4g9b2U7c95QyWxmjePlyIUT-ppGeu8d5oiXOsCtyFVNlDnGxSTauXRYcTuAEny-PdsqIVmput_vE3Hz70sY1ew7zvYVZismFlIXGrC68='

console.log(T(data))

 解密成功!!!

有道js逆向(webpack,调用crypto库实现)【超级详细】_第7张图片

 

2利用webpack工具半自动扣js

node webpack_mixer.js -l 1.js -m 2.js -o webout.js

-l 加载器的js路径 加载器的js特征:

           1.以自执行函数开头

           2.定义导出函数,类似

            return e[n].call(r.exports, r, r.exports, d), r.l = !0, r.exports

            3.为导出函数添加多个方法,类似d.e,d.m,d.n等等

-m 函数模块的js路径 函数模块的js特征: 1.一般以(window.webpackJsonp开头

-o 输入结果的js路径

 首先要明白如何解决webpack

一般步骤:
        找到加载器 
        找到调用模块 
        构造一个自执行方法 
        导出加密方法 
        编写自定义方法 
        按照流程加密       

var cs;
!function(e) {
    var t = {};

    // 加载器  所有的模块都是从这个函数加载 执行
    function n(r) {
        if (t[r])
            return t[r].exports;
        var o = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
            o.l = !0,
            o.exports
    }

    // n(9527)
    cs = n

}
    ([
        function () {
            console.log('123456')
        },

        function () {
            console.log('模块2')
        },
    ])


    // ({
    //     function () {
    //         console.log('123456')
    //     },
    //
    //           9527:function () {
    //         console.log('模块2')
    //     },
    // })
cs(0)

 利用工具半制动扣3w行

有道js逆向(webpack,调用crypto库实现)【超级详细】_第8张图片

 话不多少直接上代码!!!


const cs = require('./webout.js');
var data = 'Z21kD9ZK1ke6ugku2ccWu4n6eLnvoDT0YgGi0y3g-v0B9sYqg8L9D6UERNozYOHqbBfzK6Xzrr9D-JWITYK25LvQDZCC0OlEEvd20o_ZiEEuK65tg23dMhRrxqhqtxIrNzG07ztorX1tqTAjjktXkt3fOARrt6bIzsA_YgrJf32giJ1wqwn5herSUYkCNbHAOMwJ3nEbEm--XU1H-6r2wUOUBxioOIwyZKAL52E-sABmPS6ou8TElc7wHs1FJFJTkek3wThbdDa_RhyHkEiaTlA2grMeaXZJH1b_R81RbQuOVedJQvtilpnJnlz5TR8Grr1SZ1RLrEFy-miNjMJTmU_o5tqTUfyQysveYv1CYML6TOwNLIRhQN2P0WbFFAY6LU9jlpkZ589g2UJyeIIvafqpbtJHlZ3l92etNaYGrokV07mdu3zNX02bvhVhRHylYMYcEC24RcYtBNRfkA5lAJPxsPKOacfqsHOZAn1zThvCkhzfdHegfgyRhPtF92dhTwGm7yiL4t_EoFWOxZNkB8d82WjnrUrq8jUMrMP-J3gUAwL7CD9aVoWmQUolFQK_8HOemua_saZiis0O7M6lq3ghoOL3prkXwuzznJybEFQj06EfSogAG6lmE7Rh1aOTSVQ1PEF_4V3UJurHE3b1I7yj2_M8zP6rEndJjly4LpqSbRME8ME7JT6heZipLVjgwcgkNpX5xbpdYE8zrwSfEPiHTfl094t6TfI0-Gavi3eZj7TaMNAPDAQ5wACfbTq0-LxzA1_htFQemIaxl5bZAtM9waNQanbVaLfQ8ZCdWvWIIq9pxgxEOTCRzaCzMg8fmtxfLCHOIMfUAKRWNssJo8J_hTm49Ec_PcOehIxifKnZjR4ie73FUs8RxCfFotzjHubvF1nt-Y209eR1XVo3zJBpeleGPXJm4wxz3_21ZZPul2ZTcHhbu7HFsYHKYx88o9CaOFyLwXcy2xbJcqWbYcHNpbYm2J96s-Ag8DHEQcW-eLZwCzRfeveV2Z3CK1RcS8-MvbgcJtPuqKtqfVPJaBdG3aF7Ilyb7VRQZ2Ymw4J7iRYL6F6fioFwCht9sN8vYBqcFvDJtMSBdeEL1btu1h3W_dWI8UC5KHRGjg0_ckjbuY7XSaoBnojXo89wN6gy-Lnzs8q-E8y6Yf-elvjgJqT4kTruc_g0W_bjebZIAzaNM-FZtc5f3CQo8ILPzvCXTMzl2EmtN-EevrUlYZaF1F4AKsCejtvC4emJvOluf5ctdu-lN7P0WkjICzIXwMZ9d9oTk2byhZAoSwHo5hr21b_ZcBPPBbNDuRrt3liaZfW5IOifyZdRBoXPkWUfsIlNc-72yLNx93B2cohKKEtYmdMankxBYRvYKPM-GOzfyt4_lvMybr_GMbZe0S5EEYM_d0opLKXfnUzoS-klHpbSmQQB49X_MSNmdmm6M5k10FxJ8QGjB9U2ouKWsopJkg8iuz4WOT9i_j8eRZQHFW75zWEC5aqHyJ-Hfs3bNeQP62UI-B1HvAo76Yx0FxYhcTVLvUBwOUc6kOlB-XYj9jQx56lQoIGFjYYySnSh3U-b_76IkgK_y9kmVIlx2G-vzkXt7-tQDZQopu2NnvIlrhA-ZDI0E83s_QFstzLSWlEftUn25d0Qzf48QSQFlClkY8XzAZxjGa-bmkMPpZ0Sfh2IOXZjpHiO6uLLHnrzP0Qeo9eAyFtVgLMWnhmeoayzfzL98s9zTo37YMJ6NvAAFZ-1HSPnwi8-0llfBh61OxhDC9dJCzY_nQRdQMEOBc8Yy-epfMHhM5TAezBeFzv5dLqWRlnZ97GwhPFzkg_Jk4ON1dCpR5881Uq6W1dfVwQ5OAQaCTBOmej8T1SaSxNHfQ3D2qRF28sD70R19BCuSj3GtRfXFS9T8tKef-7a7JL0H_9jVdOK14xNk0d2qX3DwuC157n-jhausBpuf4Nq_z-ZahCq2Rs7GOoA-cxwqkXLeTWPloPUeD6OmKAFvKz1A0hApmZnQoG25NMY1KtTJBpaFnJFNA8YcgsIj7vJpFoT5FZxVwNNp4dkznoDKn-CYacdPaFg4ctMJwhSJxS955RYfBO3wf4YLcfIExue0t25gJRBKyOd-3VYYdLRYwsK_u4f31B8rWbVOFl1Aw-YCDLQ9M8iPdBoosBddg-KQl43NJmzdnT4MKGyVv_FvK8fOJy7IO0PjZ3yQCmZHfNaIlk4ON52u3z8FaLv525BCnySLKylm5_w5_g7TzwGQEZxhRYyUeAxAwakC2ablU-Lntnyf17L7ILCkBmcrp2L_TSc4wyT_3aEeas6RJnTjwm4si9jiPP4Bdne7GG_-jiNjdwE4-2WlmrSp5sNzXqEXMlS7_ZjSju1Jo93L0rzeR_XYjeZw7iZeT70ZY2mwYrsaZPVUGgzKoI0UfPlHa2yLDtVK3DuinJ4usoAQSRM9EeiG-nkUUKx58K8p4lY4Kc6lpkPpfzXUNl8p1FkAPA-FS2fGYKQdLu86uCOXfPLzePjelbjD6QUWCwFKuQ7iN6xcVQSsuD0WRJzwrKPzn1P_z6fUg9YJ3zeXMD9r0apfFNeJbZjzluqfCLMSld5xDKD1bRG-i43CnM_-fPQT-aI8-QPjc0qTH9PgG-eswPNEnL_-AElsHPZ0B0lcXtJFOXucCIbFfCm5GQFMU1lY0b0UWyAg1mrevi6ckmBcLUCpmmODWY2Z_TYMYcYSlBeXYh8xkROr0tCPiRkYanT0cRWGSkuiEPopi5TA-3lS9KYNOmNSNAbjO4nbxPdMestAOR1xVLXKHizKy_pzVBge46E-Dh8hmUg3kbLEVLibiooEwJpWqC5zLzwKB-8rEbXxWHEjSNFS-q0nJFlssMRU5mDgOKkUiX6W-X5tZne5kiTqPcdL3mrnVoeZLY6JAlH9UvE3EdqL7dnm_QVM5B5aAhzJcFKWyT6v4jQSbWwD89MAlc-xvGIIXkG2uWDpX5xsscMkcncvHE4KhekOJBPq6kymVG-rO3KMPQhWXsYJbwVO5Vt8wO1XnkQkzn74sYd-Ewa38BSHH4pyL_yfRhhV95d5txn14xuxeHYDEVjLW8-l23xtxDhT_aHQIWjoSnfHIARE2xmphUNzcBrAOLUzWNXXAIT8IghLeJk3n5zozv-ctKu9OHikni9F3SlNhIySkSIDMWtiAtKgtj3N1tvW829s3yCZGtyiUWUKrhr5qDP39vpc6v0RE1OxxYd3OGLTxkeCTCDo4GFRKvauIVQGFRpDmBs0fNZdZRYnp9pAbj8Ext-FL2Rd7PP5N8X0fxAUJ6oVwNOamD_qSgRp2w1yjF93--ma9Lw0P_4BSz-fgtWdRRuc-sEQvxiT5o4BmuE-eXrS4571rQPClKK9Ea_RRIxrIJ03073wXxlzbRwhi3RlhQYLSKFLf6EQbEcUnfwFcb94WDcRXmh-XoNPOYf5s7CgsWC3TpYqsjMss3qKxsKC6qP2JOb6Fw31W8PCBxNitOhpj1INcxa1BpFMgI2ae0LGq_wqh70JdReHhvNkbW3ZW0Zd_6uINHJNgyA5xxoejmT2u9hPBnn_tze4PQsGJ4GMXVx_ENyFG9o_a5qLcBnkl-QAdXVIygfnm7_1c3PmPsIrr5OVNsLaxx-DFfbaTcy3Br0lJ3QaNPYHEG1ivaYk8jITOP-lN94y3fbhj45K44GTyQqvNuzQ8r2C_cpy02LDU9jwLFksMfVDikwKiwg-9kxE0qtZNcltChpvewuuK24ir8NOQgTyE0QTIKG9qvQP88qtGhcF906Sd1ODv7-2SA23e68buVl7EpGfwdn9_Dit-rW5dVQuRnr0_P1ggtcHCf6Nbn3ggenuRH2myS7syuTj5qr0OvCLB6TvUhH8Z6P8-IugxcdCp2u6IwMCL0PjlK6gSHvs2zFpt9m3BULPfHPo9dvEqJzoCivWkTPElzgHiGGe-uwKgqoPPPZyuInfwuzj41UJbV-3j8mVoo0Zo8PV4Tb9qsqXmZPKYopepw4wFIwY1kJbM1bBXitVqE1dGcs-VdTzZmYQEAcnPntuOy_S2dHaZB38O-oe9PVhsaaGf_EPmA3JLRClt799JenkIg7DH7C71-bRb1MDnTLMoA8dJiJ8bKrG_WCTKsWC_IHDsVjvTMinOm4Px1mZtxJdEgqLrmyGMfkkv_dvCLHzSSv8twg-torix4SGaoofEUFT85hGH_79jCnnoSGaLrYRMA8WEl_lVj97BoHdcXxG5DpdQbvg3KZ7v7xKVhnWVHRVAnZ5tN_lHn2cpIH7qMpovXDXWCL5joKi8ou-hiESMgtiBsbkSae4r2eJ9K4BB8q0HdqPxCE-MnxoFf8PGxkSn1mJidlYD1vLyBButE-tTuaH3QcGd7NBuitoOQnYxbUVyb0kcwx2ZHgtU4kiSLAYNaBlxQ7gs813-NBFtYhOgdKW5O0RK-F7dxVWoWXp-TV2_TmJpYcSmo3o3HpEJw43l5tlmuctv47a_-0WsnwHub9ldFD5ztzRQRWZS29i5vobzu9T-k1lj3iPrv3cDBZaTtqmtacT70WbR9Z6EQbDCzcYoPHHfiDJY_QlvpUc6PE83xK4PVl2R-Gl8TUcGbVWbly0TFPH-V4epfiQO-ziKhpHrhR-n1d54QCyhYg1Au_08_pJNAOmVLZ8n2etqVOG57TFwYZQUAav9-u0oT3sjk7UB-T7u5be-2mvnbziVRzstYrvBX5Yypxq79SIeRK91bIt8HqpKZ4crY3c9jlQPoewI6sFFMdfJvEPbfQTZk5CBJMnROB5AnFhoy4Y8ooqDODST1Z7_3xqbTXgx3VyUGlfCSvjbR38ZQZdAR25td82vOIDtoUNJ9jbkPJoxzxfkpmSyYwRSb4g9b2U7c95QyWxmjePlyIUT-ppGeu8d5oiXOsCtyFVNlDnGxSTauXRYcTuAEny-PdsqIVmput_vE3Hz70sY1ew7zvYVZismFlIXGrC68='



a = cs("1c46")
c = cs.n(a)
e = cs('b639')

T = (t)=>{
                var o = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl'
                var n = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4'
                const a = e.Buffer.alloc(16, f(o))
                  , i = e.Buffer.alloc(16, f(n))
                  , r = c.a.createDecipheriv("aes-128-cbc", a, i);
                let s = r.update(t, "base64", "utf-8");
                return s += r.final("utf-8"),
                s
            }
function f(e) {
            return c.a.createHash("md5").update(e).digest()
        }

function decrypt(data) {
    return T(data)
}
console.log(T(data));

 

 

 

你可能感兴趣的:(js逆向,javascript,webpack,开发语言)