天空宫阙 发表于 2021-8-3 21:54

猿人学爬虫攻防赛 第16题

## 题目地址
```
https://match.yuanrenxue.com/match/16
```

## 调试过程
开一个XHR断点添加关键词`/api/match/16` 稍微往前追几个调用栈即可发现m生成的地方。



m由时间戳调用btoa生成,但**此处的btoa被重写**,这大概就是为什么题目的名字叫window蜜罐。



可以找到btoa函数定义的地方,使用的是旧版本的obfuscator混淆了,可以通过AST还原此处勉强可以看就直接硬钢了。


`bota`调用了`windows.md5`和`d`这两个函数本着缺啥补啥的原则都扣出来,然后就可以运行了但是不能通过验证。

需要进行回溯比较浏览器和node环境btoa的结果,最后发现是在try...catch的地方做了手脚。

```
case 0:
    // delete window,
    //   delete document,
    // 老动我的window 和document 可恶
    c(f(i(a, 2)));
    break;
case 1:

    // 找到有大佬是这样补充的可以通过验证 https://github.com/qiucl1001/YuanRenXue/blob/58c39f3ec1257a618a07bbc4a4ce48553e64fc91/question_16/js_anti_16.js
    // function n(r) {
    //   if (t)
    //         return t.exports;
    //   var i = t = {
    //         exports: {}
    //   };
    //   return e.call(i.exports, i, i.exports, n),
    //         i.exports
    // }

    // n.g = function () {
    //   if ("object" == typeof globalThis)
    //         return globalThis;
    //   try {
    //         return this || new Function("return this")()
    //   } catch (e) {
    //         if ("object" == typeof window)
    //             return window
    //   }
    // }();

    // try {
    // 注意try catch的地方
    false || c(f(i.pHtmC(2 & o, 3) | i.evetF(a, 4)))
    // n.g 浏览器返回有值 为window
    // "WhHMm" === i || n.g && c(f(i.pHtmC(2 & o, 3) | i.evetF(a, 4)))
    // } catch (e) {
    //   c(f(i(i.cVCcp(3 & o, 4), a >> 4)))
    // }
    break;
```

## 代码开源地址
```
https://github.com/skygongque/match-yuanrenxue/tree/master/match16
```

## 完整代码
16.js
```

function md5(e) {
    // var t = n
    var _0x4c28 = [
      "Rtsed",
      "SUrST",
      "nsaps",
      "vyNVU",
      "2|29|23|64",
      "0|43|57|4|",
      "NNXUu",
      "nCrbn",
      "wQPIq",
      "XBcOb",
      "39|40|47|6",
      "ljkOt",
      "yMPhx",
      "TXzzv",
      "0123456789",
      "fmdcS",
      "iXQwu",
      "grCxb",
      "3|6|1|4|7|",
      "wKeAM",
      "Iekey",
      "opqrstuvwx",
      "|7|17",
      "BQgZQ",
      "BtzmV",
      "jZUAt",
      "HYhpy",
      "Yvoqt",
      "VyzBI",
      "NNVLf",
      "dbmfK",
      "0|58|16|32",
      "UAFHv",
      "WNIsZ",
      "2|1|4|3|5|",
      "JFqRJ",
      "zObVA",
      "d24fb0d696",
      "XfWkD",
      "MFmWH",
      "lZISZ",
      "WzbFA",
      "kaQlD",
      "3f7d28e17f",
      "eSwEi",
      "YpeFX",
      "kZhzK",
      "KxKIe",
      "LAIPf",
      "LjyKQ",
      "YLwOK",
      "iqfMz",
      "51|8|0|65|",
      "JRihE",
      "nqEyg",
      "|37|22|27|",
      "ZXsFi",
      "goEwl",
      "|31|63|48|",
      "wvVCN",
      "wnDlW",
      "Myvqp",
      "UlhBp",
      "fwCDC",
      "charAt",
      "Lmhlz",
      "WQCAS",
      "UXeVn",
      "KIXRL",
      "HiEZt",
      "WNzfT",
      "lNWda",
      "tsNzQ",
      "18|38|15|2",
      "ucisR",
      "wWwRM",
      "LzcOo",
      "yWGcu",
      "PlAEw",
      "ihcci",
      "hBKtU",
      "rvloG",
      "xcQTI",
      "uhJgH",
      "vRqUp",
      "EQEzR",
      "abc",
      "QgSUn",
      "0|45|44|19",
      "WMqBp",
      "koePJ",
      "jGSEC",
      "IKbhW",
      "wEOgn",
      "|49|71|11|",
      "xgzfr",
      "ABCDEF",
      "DdHPB",
      "aFxRD",
      "sFtiw",
      "concat",
      "YhaCC",
      "YVBwM",
      "abYok",
      "2|28|6|36|",
      "NLOsy",
      "bRLIN",
      "xGAWc",
      "length",
      "zYRlD",
      "14|67|61|3",
      "bolvy",
      "pagBT",
      "mdsJQ",
      "4|69|41|26",
      "kaXPV",
      "IWxBE",
      "pviAr",
      "5|0|2",
      "lvwPz",
      "YcDFe",
      "yGmJD",
      "FcYqi",
      "AAZoR",
      "|46|5|3|50",
      "PnITs",
      "ABCDEFGHIJ",
      "charCodeAt",
      "KLMNOPQRST",
      "prrXX",
      "FDiNG",
      "split",
      "oBesn",
      "9|24|10|56",
      "VaXsK",
      "fromCharCo",
      "FDfcp",
      "rrdPR",
      "HHkBN",
      "89+/",
      "mfuQZ",
      "PbrnX",
      "FcXlo",
      "rNapo",
      "fEXNi",
      "qtIDJ",
      "60|53|21|5"
    ]
    var n = function (e, t) {
      return _0x4c28
    };
    var t = n;
    var r = {
      fEXNi: function (e, t) {
            return e(t)
      },
      LzcOo: function (e, t, n) {
            return e(t, n)
      }
    };
    r = function (e, t) {
      return e(t)
    }
      ,
      r.wEOgn = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t) {
            return e == t
      }
      ,
      r = function (e, t) {
            return e(t)
      }
      ,
      r = t(86),
      r.oBesn = "900150983c" + t(37) + t(43) + "72",
      r = t(18) + t(118),
      r = function (e, t) {
            return e < t
      }
      ,
      r = t(110) + t(5) + t(133) + "|55|13|12|" + t(146) + t(114) + t(94) + "35|68|33|4" + t(104) + t(52) + t(73) + t(88) + t(55) + "25|34|1|2|" + t(10) + t(4) + t(124) + t(58) + "52|59|66|7" + t(31) + t(22),
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r.lZISZ = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.Iekey = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.AAZoR = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.UlhBp = function (e, t) {
            return e + t
      }
      ,
      r.yMPhx = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r.kHuTw = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r.YpeFX = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.prrXX = function (e, t) {
            return e + t
      }
      ,
      r.kaQlD = function (e, t) {
            return e + t
      }
      ,
      r.qtIDJ = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.xGAWc = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r.TXzzv = function (e, t) {
            return e + t
      }
      ,
      r.NNVLf = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t, n, r, i, o, a, s) {
            return e(t, n, r, i, o, a, s)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r.MXnIN = function (e, t) {
            return e >> t
      }
      ,
      r = function (e, t) {
            return e << t
      }
      ,
      r.nqEyg = function (e, t) {
            return e % t
      }
      ,
      r.kaXPV = function (e, t) {
            return e >>> t
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t) {
            return e | t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t, n, r, i, o, a) {
            return e(t, n, r, i, o, a)
      }
      ,
      r.ZpUiH = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t) {
            return e ^ t
      }
      ,
      r = function (e, t) {
            return e ^ t
      }
      ,
      r = function (e, t) {
            return e | t
      }
      ,
      r = function (e, t) {
            return e > t
      }
      ,
      r = function (e, t) {
            return e(t)
      }
      ,
      r = function (e, t, n) {
            return e(t, n)
      }
      ,
      r = function (e, t) {
            return e(t)
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r.FDfcp = function (e, t) {
            return e * t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r.DdHPB = function (e, t) {
            return e >> t
      }
      ,
      r.abYok = function (e, t) {
            return e | t
      }
      ,
      r = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t) {
            return e - t
      }
      ,
      r = function (e) {
            return e()
      }
      ,
      r.YVBwM = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t) {
            return e / t
      }
      ,
      r = function (e, t) {
            return e * t
      }
      ,
      r = t(14) + "abcdef",
      r = function (e, t) {
            return e >> t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e >> t
      }
      ,
      r = function (e, t) {
            return e * t
      }
      ,
      r = t(126) + t(128) + "UVWXYZabcdefghijklmn" + t(21) + "yz01234567" + t(139),
      r = function (e, t) {
            return e * t
      }
      ,
      r.KIXRL = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e % t
      }
      ,
      r = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e >> t
      }
      ,
      r.jZUAt = function (e, t) {
            return e >> t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e % t
      }
      ,
      r = function (e, t) {
            return e * t
      }
      ,
      r = function (e, t) {
            return e < t
      }
      ,
      r.mfuQZ = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e * t
      }
      ,
      r = function (e, t) {
            return e(t)
      }
      ;
    var i = r;
    function o(e, n) {
      for (var r = t, o = i.WNzfT("|"), a = 0; ;) {
            switch (o) {
                case "0":
                  for (var d = 0; i.iXQwu(d, e.length); d += 16)
                        for (var p = i("|"), h = 0; ;) {
                            switch (p) {
                              case "0":
                                    w = i(l, w, b, x, T, e, 9, -51403784);
                                    continue;
                              case "1":
                                    x = u(x, T, w, b, e, 23, 76029189);
                                    continue;
                              case "2":
                                    b = i(u, b, x, T, w, e, 4, -640364487);
                                    continue;
                              case "3":
                                    T = i(c, T, w, b, x, e, 15, -1051523);
                                    continue;
                              case "4":
                                    T = s(T, w, b, x, e, 17, 606105819);
                                    continue;
                              case "5":
                                    w = i(c, w, b, x, T, e(d, 3)], 10, -1894446606);
                                    continue;
                              case "6":
                                    w = i.XfWkD(l, w, b, x, T, e, 9, -1019803690);
                                    continue;
                              case "7":
                                    T = i.pviAr(f, T, v);
                                    continue;
                              case "8":
                                    b = i.XfWkD(l, b, x, T, w, e(d, 13)], 5, -1444681467);
                                    continue;
                              case "9":
                                    x = i(s, x, T, w, b, e(d, 3)], 22, -1044525330);
                                    continue;
                              case "10":
                                    w = s(w, b, x, T, e(d, 5)], 12, 1200080426);
                                    continue;
                              case "11":
                                    x = i(l, x, T, w, b, e(d, 0)], 20, -373897302);
                                    continue;
                              case "12":
                                    w = i(s, w, b, x, T, e(d, 9)], 12, -1958435417);
                                    continue;
                              case "13":
                                    b = i.XfWkD(s, b, x, T, w, e, 7, 1770035416);
                                    continue;
                              case "14":
                                    var m = b;
                                    continue;
                              case "15":
                                    w = i(u, w, b, x, T, e, 11, -2022574463);
                                    continue;
                              case "16":
                                    b = f(b, m);
                                    continue;
                              case "17":
                                    w = i(f, w, g);
                                    continue;
                              case "18":
                                    x = l(x, T, w, b, e(d, 12)], 20, -1921207734);
                                    continue;
                              case "19":
                                    w = i(u, w, b, x, T, e, 11, 1272893353);
                                    continue;
                              case "20":
                                    T = i(u, T, w, b, x, e, 16, 1839030562);
                                    continue;
                              case "21":
                                    b = s(b, x, T, w, e(d, 12)], 7, 1804550682);
                                    continue;
                              case "22":
                                    x = u(x, T, w, b, e(d, 10)], 23, -1094730640);
                                    continue;
                              case "23":
                                    T = i(c, T, w, b, x, e, 15, -1416354905);
                                    continue;
                              case "24":
                                    b = s(b, x, T, w, e(d, 4)], 7, -176418897);
                                    continue;
                              case "25":
                                    w = i.UXeVn(u, w, b, x, T, e, 11, -358537222);
                                    continue;
                              case "26":
                                    b = i.UXeVn(l, b, x, T, w, e(d, 1)], 5, -165796510);
                                    continue;
                              case "27":
                                    b = i.UXeVn(u, b, x, T, w, e(d, 13)], 4, 681279174);
                                    continue;
                              case "28":
                                    b = i(l, b, x, T, w, e(d, 9)], 5, 568446438);
                                    continue;
                              case "29":
                                    w = i.yMPhx(c, w, b, x, T, e, 10, 11261161415);
                                    continue;
                              case "30":
                                    var g = w;
                                    continue;
                              case "31":
                                    b = c(b, x, T, w, e, 6, 1873313359);
                                    continue;
                              case "32":
                                    x = i.aFxRD(f, x, y);
                                    continue;
                              case "33":
                                    T = i(l, T, w, b, x, e(d, 15)], 14, -660478335);
                                    continue;
                              case "34":
                                    T = i.kHuTw(u, T, w, b, x, e, 16, -722881979);
                                    continue;
                              case "35":
                                    b = i(l, b, x, T, w, e(d, 5)], 5, -701520691);
                                    continue;
                              case "36":
                                    T = l(T, w, b, x, e(d, 3)], 14, -187363961);
                                    continue;
                              case "37":
                                    T = i(u, T, w, b, x, e, 16, -155497632);
                                    continue;
                              case "38":
                                    b = i.FcXlo(u, b, x, T, w, e, 4, -378558);
                                    continue;
                              case "39":
                                    w = i(u, w, b, x, T, e(d, 12)], 11, -421815835);
                                    continue;
                              case "40":
                                    T = i(u, T, w, b, x, e(d, 15)], 16, 530742520);
                                    continue;
                              case "41":
                                    x = i.wvVCN(s, x, T, w, b, e, 22, 1236531029);
                                    continue;
                              case "42":
                                    x = i(l, x, T, w, b, e(d, 4)], 20, -405537848);
                                    continue;
                              case "43":
                                    b = i(s, b, x, T, w, e, 7, -680976936);
                                    continue;
                              case "44":
                                    b = i(u, b, x, T, w, e(d, 1)], 4, -1530992060);
                                    continue;
                              case "45":
                                    x = i.nCrbn(u, x, T, w, b, e(d, 14)], 23, -35311556);
                                    continue;
                              case "46":
                                    b = c(b, x, T, w, e(d, 12)], 6, 1700485571);
                                    continue;
                              case "47":
                                    x = i(u, x, T, w, b, e, 23, -995338651);
                                    continue;
                              case "48":
                                    T = c(T, w, b, x, e, 15, -1560198380);
                                    continue;
                              case "49":
                                    w = i(l, w, b, x, T, e(d, 6)], 9, -1069501632);
                                    continue;
                              case "50":
                                    x = i(c, x, T, w, b, e(d, 1)], 21, -2054922799);
                                    continue;
                              case "51":
                                    x = i.fmdcS(l, x, T, w, b, e, 20, 1163531501);
                                    continue;
                              case "52":
                                    x = i(c, x, T, w, b, e(d, 13)], 21, 1309151649);
                                    continue;
                              case "53":
                                    x = i(s, x, T, w, b, e(d, 11)], 22, -1990404162);
                                    continue;
                              case "54":
                                    w = i(s, w, b, x, T, e(d, 13)], 12, -40341101);
                                    continue;
                              case "55":
                                    x = i.sFtiw(s, x, T, w, b, e, 22, -45705983);
                                    continue;
                              case "56":
                                    T = i.sFtiw(s, T, w, b, x, e, 17, -1473231341);
                                    continue;
                              case "57":
                                    w = i(s, w, b, x, T, e, 12, -389564586);
                                    continue;
                              case "58":
                                    x = c(x, T, w, b, e(d, 9)], 21, -343485551);
                                    continue;
                              case "59":
                                    b = i(c, b, x, T, w, e(d, 4)], 6, -145523070);
                                    continue;
                              case "60":
                                    T = i.bRLIN(s, T, w, b, x, e(d, 10)], 17, -42063);
                                    continue;
                              case "61":
                                    var v = T;
                                    continue;
                              case "62":
                                    b = i(c, b, x, T, w, e, 6, -198630844);
                                    continue;
                              case "63":
                                    w = i(c, w, b, x, T, e(d, 15)], 10, -30611744);
                                    continue;
                              case "64":
                                    x = c(x, T, w, b, e, 21, -57434055);
                                    continue;
                              case "65":
                                    T = i(l, T, w, b, x, e(d, 7)], 14, 1735328473);
                                    continue;
                              case "66":
                                    w = i(c, w, b, x, T, e(d, 11)], 10, -1120210379);
                                    continue;
                              case "67":
                                    var y = x;
                                    continue;
                              case "68":
                                    w = i(l, w, b, x, T, e, 9, 38016083);
                                    continue;
                              case "69":
                                    T = i(s, T, w, b, x, e(d, 14)], 17, -1502002290);
                                    continue;
                              case "70":
                                    T = i.SUrST(c, T, w, b, x, e(d, 2)], 15, 718787259);
                                    continue;
                              case "71":
                                    T = l(T, w, b, x, e(d, 11)], 14, 643717713);
                                    continue
                            }
                            break
                        }
                  continue;
                case "1":
                  var b = 1732584193;
                  continue;
                case "2":
                  return Array(b, x, T, w);
                case "3":
                  e |= i(128, i(n, 32));
                  continue;
                case "4":
                  var x = -271733879;
                  continue;
                case "5":
                  var w = 271733878;
                  continue;
                case "6":
                  e(n + 64, 9), 4) + 14] = n;
                  continue;
                case "7":
                  var T = -1732584194;
                  continue
            }
            break
      }
    }
    function a(e, n, r, o, a, s) {
      var l = t;
      return f(i.BtzmV(d, i(f, i.dbmfK(f, n, e), i(f, o, s)), a), r)
    }
    function s(e, n, r, o, s, l, u) {
      var c = t;
      return a(i(i(n, r), i(~n, o)), e, n, s, l, u)
    }
    function l(e, n, r, o, s, l, u) {
      var c = t;
      return i(a, i(i.ZpUiH(n, o), i.ZpUiH(r, ~o)), e, n, s, l, u)
    }
    function u(e, n, r, o, s, l, u) {
      return i(a, i.tsNzQ(n ^ r, o), e, n, s, l, u)
    }
    function c(e, n, r, o, s, l, u) {
      var c = t;
      return i(a, i(r, i(n, ~o)), e, n, s, l, u)
    }
    function f(e, n) {
      var r = t
            , o = i(65535 & e, i.iqfMz(n, 65535))
            , a = i(e >> 16, i(n, 16)) + i(o, 16);
      return i(i(a, 16), i(o, 65535))
    }
    function d(e, n) {
      var r = t;
      return i.abYok(e << n, e >>> i(32, n))
    }
    function p(e) {
      for (var n = t, r = i(Array), o = i(i.vRqUp(1, 16), 1), a = 0; a < i.FDfcp(e, 16); a += 16)
            r(a, 5)] |= i(i(e(i(a, 16)), o), i(a, 32));
      return r
    }
    function h(e) {
      for (var n = t, r = i, o = "", a = 0; i.iXQwu(a, i(e, 4)); a++)
            o += i.xgzfr(r(15 & i(e(a, 2)], i(i(a % 4, 8), 4))), r(15 & i.wWwRM(e, i(a % 4, 8))));
      return o
    }
    return i((function (e) {
      var n = t;
      return i(h, i(o, p(e), 16 * e))
    }
    ), e)
}
function d(e) {
    // var t = u
    var _0x34e7 = [
      "split",
      "ABHICESQWK",
      "FKByN",
      "U987654321",
      "lmHcG",
      "dICfr",
      "Szksx",
      "Bgrij",
      "iwnNJ",
      "jihgfdecba",
      "GfTek",
      "gfdecbaZXY",
      "constructo",
      "QIoXW",
      "jLRMs",
      "AqLWq",
      "0zyxwvutsr",
      "TKgNw",
      "eMnqD",
      "thjIz",
      "btoa",
      "MNPQRSTWXY",
      "oPsqh",
      "niIlq",
      "evetF",
      "LVZVH",
      "fYWEX",
      "kmnprstwxy",
      "aYkvo",
      "tsrqpomnlk",
      "HfLqY",
      "aQCDK",
      "lGBLj",
      "test",
      "3210zyxwvu",
      "QWK2Fi",
      "return /\" ",
      "hsJtK",
      "jdwcO",
      "SlFsj",
      "OWUOc",
      "LCaAn",
      "[^ ]+)+)+[",
      "FAVYf",
      "2Fi+987654",
      "floor",
      "join",
      "EuwBW",
      "OXYrZ",
      "charCodeAt",
      "SkkHG",
      "iYuJr",
      "GwoYF",
      "kPdGe",
      "cVCcp",
      "INQRH",
      "INVALID_CH",
      "charAt",
      "push",
      "apply",
      "lalCJ",
      "kTcRS",
      "+ this + \"",
      "ykpOn",
      "gLnjm",
      "gmBaq",
      "kukBH",
      "dvEWE",
      "SFKLi",
      "^([^ ]+( +",
      "qpomnlkjih",
      "^ ]}",
      "pHtmC",
      "length"
    ]
    var t = function (e, t) {
      return _0x34e7
    }
    var n = {};
    n = function (e, t) {
      return e || t
    }
      ,
      n.bWcgB = function (e, t) {
            return e * t
      }
      ,
      n = "ABCDEFGHJK" + t(209) + "Zabcdefhij" + t(215) + "z2345678";
    for (var r = n, o = "1|3|0|4|2|5"("|"), a = 0; ;) {
      switch (o) {
            case "0":
                var s = l;
                continue;
            case "1":
                e = r(e, 32);
                continue;
            case "2":
                for (i = 0; i < e; i++)
                  c += l(Math(r.bWcgB(Math.random(), s)));
                continue;
            case "3":
                var l = r;
                continue;
            case "4":
                var c = "";
                continue;
            case "5":
                return c
      }
      break
    }
}
function btoa(e) {
    var _0x34e7 = [
      "split",
      "ABHICESQWK",
      "FKByN",
      "U987654321",
      "lmHcG",
      "dICfr",
      "Szksx",
      "Bgrij",
      "iwnNJ",
      "jihgfdecba",
      "GfTek",
      "gfdecbaZXY",
      "constructo",
      "QIoXW",
      "jLRMs",
      "AqLWq",
      "0zyxwvutsr",
      "TKgNw",
      "eMnqD",
      "thjIz",
      "btoa",
      "MNPQRSTWXY",
      "oPsqh",
      "niIlq",
      "evetF",
      "LVZVH",
      "fYWEX",
      "kmnprstwxy",
      "aYkvo",
      "tsrqpomnlk",
      "HfLqY",
      "aQCDK",
      "lGBLj",
      "test",
      "3210zyxwvu",
      "QWK2Fi",
      "return /\" ",
      "hsJtK",
      "jdwcO",
      "SlFsj",
      "OWUOc",
      "LCaAn",
      "[^ ]+)+)+[",
      "FAVYf",
      "2Fi+987654",
      "floor",
      "join",
      "EuwBW",
      "OXYrZ",
      "charCodeAt",
      "SkkHG",
      "iYuJr",
      "GwoYF",
      "kPdGe",
      "cVCcp",
      "INQRH",
      "INVALID_CH",
      "charAt",
      "push",
      "apply",
      "lalCJ",
      "kTcRS",
      "+ this + \"",
      "ykpOn",
      "gLnjm",
      "gmBaq",
      "kukBH",
      "dvEWE",
      "SFKLi",
      "^([^ ]+( +",
      "qpomnlkjih",
      "^ ]}",
      "pHtmC",
      "length"
    ]
    var t = function (e, t) {
      return _0x34e7
    }
    // var t = u;
    var r = {};
    r.TGmSp = t(244) + "ARACTER_ERR",
      r = t(224) + t(250) + "/",
      r = "^([^ ]+( +" + t(230) + t(259),
      r.aYkvo = function (e) {
            return e()
      }
      ,
      r = function (e, t) {
            return e % t
      }
      ,
      r.evetF = function (e, t) {
            return e >> t
      }
      ,
      r.GfTek = t(196),
      r = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e | t
      }
      ,
      r = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t) {
            return e << t
      }
      ,
      r = function (e, t) {
            return e & t
      }
      ,
      r.jdwcO = function (e, t) {
            return e === t
      }
      ,
      r.kPdGe = t(231),
      r = t(213),
      r = function (e, t) {
            return e & t
      }
      ,
      r = function (e, t) {
            return e == t
      }
      ,
      r = function (e, t) {
            return e + t
      }
      ,
      r = function (e, t) {
            return e(t)
      }
      ;
    var i = r;
    if (/([^\u0000-\u00ff])/.test(e))
      throw new Error(i.TGmSp);
    var f = "U9876543210zyxwvutsrqpomnlkjihgfdecbaZXYWVUTSRQPONABHICESQWK2Fi+9876543210zyxwvutsrqpomnlkjihgfdecbaZXYWVUTSRQPONABHICESQWK2Fi"
    for (var o, a, s, l = 0, c = []; l < e;) {
      switch (a = e(l),
      s = i.kukBH(l, 6)) {
            case 0:
                // delete window,
                //   delete document,
                // 老动我的window 和document 可恶
                c(f(i(a, 2)));
                break;
            case 1:

                // 找到有大佬是这样补充的可以通过 https://github.com/qiucl1001/YuanRenXue/blob/58c39f3ec1257a618a07bbc4a4ce48553e64fc91/question_16/js_anti_16.js
                // function n(r) {
                //   if (t)
                //         return t.exports;
                //   var i = t = {
                //         exports: {}
                //   };
                //   return e.call(i.exports, i, i.exports, n),
                //         i.exports
                // }

                // n.g = function () {
                //   if ("object" == typeof globalThis)
                //         return globalThis;
                //   try {
                //         return this || new Function("return this")()
                //   } catch (e) {
                //         if ("object" == typeof window)
                //             return window
                //   }
                // }();

                // try {
                // 注意try catch的地方
                false || c(f(i.pHtmC(2 & o, 3) | i.evetF(a, 4)))
                // n.g 浏览器返回有值 为window
                // "WhHMm" === i || n.g && c(f(i.pHtmC(2 & o, 3) | i.evetF(a, 4)))
                // } catch (e) {
                //   c(f(i(i.cVCcp(3 & o, 4), a >> 4)))
                // }
                break;
            case 2:
                c(f(i(i(15 & o, 2), i.evetF(a, 6)))),
                  c(f(i(a, 63)));
                break;
            case 3:
                c(f(i(a, 3)));
                break;
            case 4:
                c.push(f(i(i(i.OWUOc(o, 4), 6), i(a, 6))));
                break;
            case 5:
                c(f(i(i(i(o, 15), 4), a >> 8))),
                  c.push(f.charAt(i(a, 63)))
      }
      o = a,
            l++
    }
    return 0 == s ? i(i, i) || (c(f(i(o, 3) << 4)),
      c.push("FM")) : i.eMnqD(s, 1) && (c(f((15 & o) << 2)),
            c("K")),
      i(i.aQCDK(d(15), md5(c(""))), i(d, 10))
}


var t = process.argv;
console.log(btoa(t))


// console.log(btoa('11'))
// console.log(md5('11'))

```

16.py

```
import time
import requests
import os

"""
2021.8.3测试有效
如果需要提交答案并通过需要登录
"""

def main():
    sums = 0
    headers = {"User-Agent": "yuanrenxue.project",}
    for i in range(1, 6):
      t = str(int(time.time()))+'000'
      nodejs = os.popen('node 16 '+ t)
      m = nodejs.read().replace('\n', '')
      params = {
            "page":i,
            "m":m,
            "t":t,
      }
      response = requests.get(url="http://match.yuanrenxue.com/api/match/16",params = params,headers=headers).json()
      print(response)
      for each in response["data"]:
            sums += each["value"]
    print(sums)




if __name__ == "__main__":
    main()
```

天空宫阙 发表于 2021-8-3 23:39

漁滒 发表于 2021-8-3 22:45
大佬这是准备把猿人学的题目研究得彻彻底底的吗

大佬见笑了,只是做一道简单题

Hernnin 发表于 2021-8-3 22:25

大佬优秀

漁滒 发表于 2021-8-3 22:45

大佬这是准备把猿人学的题目研究得彻彻底底的吗{:17_1068:}

wangyitu 发表于 2021-8-4 09:05

这代码怎么那么看着像是混淆了之后的呢

吾爱李 发表于 2021-8-4 09:14

观摩学习一下

zuxin521 发表于 2021-8-4 09:57

这太高深复杂了啊,好晕

Weestar 发表于 2021-8-4 11:02

厉害了 但是还是直接下载破解版省事{:1_918:}

Tamluo 发表于 2021-8-4 12:24

观摩学习一下

cptw 发表于 2021-8-4 13:11


观摩学习一下
页: [1] 2
查看完整版本: 猿人学爬虫攻防赛 第16题