diff --git a/猿人学练习/34js加密js加课例题1/1.js b/猿人学练习/34js加密js加课例题1-补环境-py执行js/1.js similarity index 97% rename from 猿人学练习/34js加密js加课例题1/1.js rename to 猿人学练习/34js加密js加课例题1-补环境-py执行js/1.js index edd0868..df02668 100644 --- a/猿人学练习/34js加密js加课例题1/1.js +++ b/猿人学练习/34js加密js加课例题1-补环境-py执行js/1.js @@ -3,8 +3,14 @@ var hexcase = 0; var b64pad = __Oxb76f0[0]; var chrsz = 8; -navigator = {}; -window = {}; +navigator = { + 'userAgent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36', + 'plugins': { + 'length': 5 + } +}; + +window = global; document = { 'execCommand': function () { return true @@ -324,4 +330,26 @@ function binl2b64(_0x1b98x38) { ; return _0x1b98x2d; -} \ No newline at end of file +} + + +// rnns = 'tu2qmX'; +// rind = 12; +// hex_1_str = hex_1('YCBR1vPi7L'); +// d31c713f16b0tu2qmXe008fa1c157ced +// console.log(hex_1_str); + + +function hex_1_str(rnns, rind, sct){ + rnns = rnns; + rind = rind; + return hex_1(sct); +} + + + +module.exports = + { + hex_1_str + }; + diff --git a/猿人学练习/34js加密js加课例题1-补环境-py执行js/2.js b/猿人学练习/34js加密js加课例题1-补环境-py执行js/2.js new file mode 100644 index 0000000..232f6b9 --- /dev/null +++ b/猿人学练习/34js加密js加课例题1-补环境-py执行js/2.js @@ -0,0 +1,246 @@ +var __Oxbb794 = ["", "length", "concat", "; ", "split", "cookie", "=", "yuanrenxue34", "iloveu=", "domain", ".", "replace", "getTime", "setTime", "; expires=", "toGMTString", "; path=/", "; domain=", "charCodeAt", "fromCharCode", "0123456789ABCDEF", "0123456789abcdef", "charAt", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "undefined", "log", "删除", "版本号,js会定", "期弹窗,", "还请支持我们的工作", "jsjia", "mi.com"]; +var hexcase = 0; +var b64pad = __Oxbb794[0]; +var chrsz = 8; + +function hex_2(_0x6a8ax5) { + return binb2hex(core_sha1(str2binb(_0x6a8ax5), _0x6a8ax5[__Oxbb794[1]] * chrsz)); +} + +function b64_sha1(_0x6a8ax5) { + return binb2b64(core_sha1(str2binb(_0x6a8ax5), _0x6a8ax5[__Oxbb794[1]] * chrsz)); +} + +function str_sha1(_0x6a8ax5) { + return binb2str(core_sha1(str2binb(_0x6a8ax5), _0x6a8ax5[__Oxbb794[1]] * chrsz)); +} + +function hex_hmac_sha1(_0x6a8ax9, _0x6a8axa) { + return binb2hex(core_hmac_sha1(_0x6a8ax9, _0x6a8axa)); +} + +function b64_hmac_sha1(_0x6a8ax9, _0x6a8axa) { + return binb2b64(core_hmac_sha1(_0x6a8ax9, _0x6a8axa)); +} + +function str_hmac_sha1(_0x6a8ax9, _0x6a8axa) { + return binb2str(core_hmac_sha1(_0x6a8ax9, _0x6a8axa)); +} + +function core_sha1(_0x6a8axe, _0x6a8axf) { + _0x6a8axe[_0x6a8axf >> 5] |= 128 << 24 - _0x6a8axf % 32; + _0x6a8axe[(_0x6a8axf + 64 >> 9 << 4) + 15] = _0x6a8axf; + + var _0x6a8ax10 = Array(80); + + var _0x6a8ax11 = 1732584193; + + var _0x6a8ax12 = -271733879; + + var _0x6a8ax13 = -1732584194; + + var _0x6a8ax14 = 271733878; + + var _0x6a8ax15 = -1009589776; + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8axe[__Oxbb794[1]]; _0x6a8ax16 += 16) { + var _0x6a8ax17 = _0x6a8ax11; + var _0x6a8ax18 = _0x6a8ax12; + var _0x6a8ax19 = _0x6a8ax13; + var _0x6a8ax1a = _0x6a8ax14; + var _0x6a8ax1b = _0x6a8ax15; + + for (var _0x6a8ax1c = 0; _0x6a8ax1c < 80; _0x6a8ax1c++) { + if (_0x6a8ax1c < 16) { + _0x6a8ax10[_0x6a8ax1c] = _0x6a8axe[_0x6a8ax16 + _0x6a8ax1c]; + } else { + _0x6a8ax10[_0x6a8ax1c] = rol(_0x6a8ax10[_0x6a8ax1c - 3] ^ _0x6a8ax10[_0x6a8ax1c - 8] ^ _0x6a8ax10[_0x6a8ax1c - 14] ^ _0x6a8ax10[_0x6a8ax1c - 16], 1); + } + + ; + + var _0x6a8ax1d = safe_add(safe_add(rol(_0x6a8ax11, 5), sha1_ft(_0x6a8ax1c, _0x6a8ax12, _0x6a8ax13, _0x6a8ax14)), safe_add(safe_add(_0x6a8ax15, _0x6a8ax10[_0x6a8ax1c]), sha1_kt(_0x6a8ax1c))); + + _0x6a8ax15 = _0x6a8ax14; + _0x6a8ax14 = _0x6a8ax13; + _0x6a8ax13 = rol(_0x6a8ax12, 30); + _0x6a8ax12 = _0x6a8ax11; + _0x6a8ax11 = _0x6a8ax1d; + } + + ; + _0x6a8ax11 = safe_add(_0x6a8ax11, _0x6a8ax17); + _0x6a8ax12 = safe_add(_0x6a8ax12, _0x6a8ax18); + _0x6a8ax13 = safe_add(_0x6a8ax13, _0x6a8ax19); + _0x6a8ax14 = safe_add(_0x6a8ax14, _0x6a8ax1a); + _0x6a8ax15 = safe_add(_0x6a8ax15, _0x6a8ax1b); + } + + ; + return Array(_0x6a8ax11, _0x6a8ax12, _0x6a8ax13, _0x6a8ax14, _0x6a8ax15); +} + +function sha1_ft(_0x6a8ax1d, _0x6a8ax12, _0x6a8ax13, _0x6a8ax14) { + if (_0x6a8ax1d < 20) { + return _0x6a8ax12 & _0x6a8ax13 | ~_0x6a8ax12 & _0x6a8ax14; + } + + ; + + if (_0x6a8ax1d < 40) { + return _0x6a8ax12 ^ _0x6a8ax13 ^ _0x6a8ax14; + } + + ; + + if (_0x6a8ax1d < 60) { + return _0x6a8ax12 & _0x6a8ax13 | _0x6a8ax12 & _0x6a8ax14 | _0x6a8ax13 & _0x6a8ax14; + } + + ; + return _0x6a8ax12 ^ _0x6a8ax13 ^ _0x6a8ax14; +} + +function sha1_kt(_0x6a8ax1d) { + return _0x6a8ax1d < 20 ? 1518500249 : _0x6a8ax1d < 40 ? 1859775393 : _0x6a8ax1d < 60 ? -1894007588 : -899497514; +} + +function core_hmac_sha1(_0x6a8ax9, _0x6a8axa) { + var _0x6a8ax21 = str2binb(_0x6a8ax9); + + if (_0x6a8ax21[__Oxbb794[1]] > 16) { + _0x6a8ax21 = core_sha1(_0x6a8ax21, _0x6a8ax9[__Oxbb794[1]] * chrsz); + } + + ; + + var _0x6a8ax22 = Array(16); + + var _0x6a8ax23 = Array(16); + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < 16; _0x6a8ax16++) { + _0x6a8ax22[_0x6a8ax16] = _0x6a8ax21[_0x6a8ax16] ^ 909522486; + _0x6a8ax23[_0x6a8ax16] = _0x6a8ax21[_0x6a8ax16] ^ 1549556828; + } + + ; + + var _0x6a8ax24 = core_sha1(_0x6a8ax22[__Oxbb794[2]](str2binb(_0x6a8axa)), 512 + _0x6a8axa[__Oxbb794[1]] * chrsz); + + return core_sha1(_0x6a8ax23[__Oxbb794[2]](_0x6a8ax24), 672); +} + +function safe_add(_0x6a8axe, _0x6a8ax26) { + var _0x6a8ax27 = (_0x6a8axe & 65535) + (_0x6a8ax26 & 65535); + + var _0x6a8ax28 = (_0x6a8axe >> 16) + (_0x6a8ax26 >> 16) + (_0x6a8ax27 >> 16); + + return _0x6a8ax28 << 16 | _0x6a8ax27 & 65535; +} + +function rol(_0x6a8ax2a, _0x6a8ax2b) { + return _0x6a8ax2a << _0x6a8ax2b | _0x6a8ax2a >>> 32 - _0x6a8ax2b; +} + +function sEnc() { + var _0x6a8ax2d = document[__Oxbb794[5]][__Oxbb794[4]](__Oxbb794[3]); + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8ax2d[__Oxbb794[1]]; _0x6a8ax16++) { + var _0x6a8ax2e = _0x6a8ax2d[_0x6a8ax16][__Oxbb794[4]](__Oxbb794[6]); + + if (_0x6a8ax2e[0] == __Oxbb794[7]) { + sct = unescape(_0x6a8ax2e[1]); + + var _0x6a8ax2f = __Oxbb794[8] + escape(hex_2(hex_1(sct))); + + var _0x6a8ax30 = new Date(); + + var _0x6a8ax31 = 2592000000; + var _0x6a8ax32 = document[__Oxbb794[9]]; + _0x6a8ax32 = _0x6a8ax32[__Oxbb794[11]](_0x6a8ax32[__Oxbb794[4]](__Oxbb794[10])[0] + __Oxbb794[10], __Oxbb794[0]); + + _0x6a8ax30[__Oxbb794[13]](_0x6a8ax30[__Oxbb794[12]]() + _0x6a8ax31); + + _0x6a8ax2f += __Oxbb794[14] + _0x6a8ax30[__Oxbb794[15]](); + _0x6a8ax2f += __Oxbb794[16]; + document[__Oxbb794[5]] = _0x6a8ax2f; + } + } +} + +function str2binb(_0x6a8ax34) { + var _0x6a8ax35 = Array(); + + var _0x6a8ax36 = (1 << chrsz) - 1; + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8ax34[__Oxbb794[1]] * chrsz; _0x6a8ax16 += chrsz) { + _0x6a8ax35[_0x6a8ax16 >> 5] |= (_0x6a8ax34[__Oxbb794[18]](_0x6a8ax16 / chrsz) & _0x6a8ax36) << 24 - _0x6a8ax16 % 32; + } + + ; + return _0x6a8ax35; +} + +function binb2str(_0x6a8ax35) { + var _0x6a8ax34 = __Oxbb794[0]; + + var _0x6a8ax36 = (1 << chrsz) - 1; + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8ax35[__Oxbb794[1]] * 32; _0x6a8ax16 += chrsz) { + _0x6a8ax34 += String[__Oxbb794[19]](_0x6a8ax35[_0x6a8ax16 >> 5] >>> 24 - _0x6a8ax16 % 32 & _0x6a8ax36); + } + + ; + return _0x6a8ax34; +} + +function binb2hex(_0x6a8ax39) { + if (hexcase) { + var _0x6a8ax3a = __Oxbb794[20]; + } else { + var _0x6a8ax3a = __Oxbb794[21]; + } + + var _0x6a8ax34 = __Oxbb794[0]; + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8ax39[__Oxbb794[1]] * 4; _0x6a8ax16++) { + _0x6a8ax34 += _0x6a8ax3a[__Oxbb794[22]](_0x6a8ax39[_0x6a8ax16 >> 2] >> (3 - _0x6a8ax16 % 4) * 8 + 4 & 15) + _0x6a8ax3a[__Oxbb794[22]](_0x6a8ax39[_0x6a8ax16 >> 2] >> (3 - _0x6a8ax16 % 4) * 8 & 15); + } + + ; + return _0x6a8ax34; +} + +function binb2b64(_0x6a8ax39) { + var _0x6a8ax3c = __Oxbb794[23]; + var _0x6a8ax34 = __Oxbb794[0]; + + for (var _0x6a8ax16 = 0; _0x6a8ax16 < _0x6a8ax39[__Oxbb794[1]] * 4; _0x6a8ax16 += 3) { + var _0x6a8ax3d = (_0x6a8ax39[_0x6a8ax16 >> 2] >> 8 * (3 - _0x6a8ax16 % 4) & 255) << 16 | (_0x6a8ax39[_0x6a8ax16 + 1 >> 2] >> 8 * (3 - (_0x6a8ax16 + 1) % 4) & 255) << 8 | _0x6a8ax39[_0x6a8ax16 + 2 >> 2] >> 8 * (3 - (_0x6a8ax16 + 2) % 4) & 255; + + for (var _0x6a8ax1c = 0; _0x6a8ax1c < 4; _0x6a8ax1c++) { + if (_0x6a8ax16 * 8 + _0x6a8ax1c * 6 > _0x6a8ax39[__Oxbb794[1]] * 32) { + _0x6a8ax34 += b64pad; + } else { + _0x6a8ax34 += _0x6a8ax3c[__Oxbb794[22]](_0x6a8ax3d >> 6 * (3 - _0x6a8ax1c) & 63); + } + } + }; + return _0x6a8ax34; +} + +//37e4aa5f2e8fe43d0f6b061eb3383763eed96394 +// hex_2_str = escape(hex_2('d31c713f16b0tu2qmXe008fa1c157ced')); +// console.log(hex_2_str); + +function hex_2_str(hex_1_str){ + return escape(hex_2(hex_1_str)); +} + + + +module.exports = + { + hex_2_str + }; + diff --git a/猿人学练习/34js加密js加课例题1-补环境-py执行js/main.py b/猿人学练习/34js加密js加课例题1-补环境-py执行js/main.py new file mode 100644 index 0000000..8cb981a --- /dev/null +++ b/猿人学练习/34js加密js加课例题1-补环境-py执行js/main.py @@ -0,0 +1,41 @@ +import requests +import time + + +def get_safe(): + timestamp = int(time.time()) + data = {"timestamp": str(timestamp)} + url = f"http://0.0.0.0:3005/sign_34" + session = requests.session() + headers = { + 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + session.headers = headers + response = session.request("POST", url, data=data) + return response.text + + +def challenge34(): + url = "https://www.python-spider.com/challenge/34" + session = requests.session() + headers = { + 'cookie': 'sessionid=7da5y8hmpxhsazb024bdr0trejrnifey;' + } + session.headers = headers + response = session.request("GET", url, headers=headers) + return response.text + + +def run(): + data_num = 0 + response_json = challenge34() + print(response_json) + # data_list = response_json.get('data') + # print(data_list) + # for data in data_list: + # data_num += int(data.get('value')) + # print(data_num) + + +if __name__ == '__main__': + run() diff --git a/猿人学练习/34js加密js加课例题1-补环境-py执行js/server.js b/猿人学练习/34js加密js加课例题1-补环境-py执行js/server.js new file mode 100644 index 0000000..c60f61a --- /dev/null +++ b/猿人学练习/34js加密js加课例题1-补环境-py执行js/server.js @@ -0,0 +1,23 @@ +const express = require('express'); +const app = express(); +const code_1 = require("./1"); +const code_2 = require("./2"); +var bodyParser = require('body-parser'); +app.use(bodyParser()); + + +app.post('/sign_34', function (req, res) { + let result = ''; + let rnns = req.body.rnns; + let rind = req.body.rind; + let sct = req.body.sct; + let result_hex_1 = code_1.hex_1_str(rnns, rind, sct); + console.log(result_hex_1); + result = code_2.hex_2_str(result_hex_1); + res.send(result.toString()); +}); + + +app.listen(3005, () => { + console.log("开启服务,端口 3005") +}); diff --git a/猿人学练习/34js加密js加课例题1-补环境-py执行js/test.js b/猿人学练习/34js加密js加课例题1-补环境-py执行js/test.js new file mode 100644 index 0000000..f70ef20 --- /dev/null +++ b/猿人学练习/34js加密js加课例题1-补环境-py执行js/test.js @@ -0,0 +1,27 @@ +var rind = "xajgxs=LfNZU3qBR68;g\"ds"; +var rnns//@$%%&*(2302)(&(^%^ + /* + In2s\"=""*/ = "SFvzHk" +;//ashjgfgf +rind + //fewfwe3232 + = 119; +/*423rfewfwe*/ +//fegrbnn4384;543 +dfsind = + /**//**/491; +rind =/* + @#%$^&%$96667r45fggbh + CZRvoWKAU*//**//**/84//FDi5u +;"#@$#%@#TYBWOE2hu"; +669909 +/* +rind=/* + //fewfwe3232 + =683*//*423rfewfwe*/ +//fegrbnn4384;543 +/*rind= +242;*/ + +console.log(rind); +console.log(rnns); \ No newline at end of file