From 2299bf9e5e8c063edb7d22422cd047bed392af58 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Sat, 2 Apr 2022 12:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8C=BF=E4=BA=BA=E5=AD=A6=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E9=A2=98-js=E6=B7=B7=E6=B7=86-=E6=BA=90=E7=A0=81=E4=B9=B1?= =?UTF-8?q?=E7=A0=81-=E6=97=A0=E9=99=90debugger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 猿人学第1题-js混淆-乱码-无限debugger/demo.py | 53 +++++++++++++++++++ .../js代码.js | 7 ++- .../server.js | 18 +++++++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 猿人学第1题-js混淆-乱码-无限debugger/demo.py create mode 100644 猿人学第1题-js混淆-乱码-无限debugger/server.js diff --git a/猿人学第1题-js混淆-乱码-无限debugger/demo.py b/猿人学第1题-js混淆-乱码-无限debugger/demo.py new file mode 100644 index 0000000..99a1c35 --- /dev/null +++ b/猿人学第1题-js混淆-乱码-无限debugger/demo.py @@ -0,0 +1,53 @@ +import requests +import time +import json + + +class App(object): + + def __init__(self): + self.sign_url = "http://127.0.0.1:3001/get_sign" + self.html_url = "https://www.xiaohongshu.com/discovery/item/5ea02f090000000001001a90" + + def get_sign(self, date_time): + data = { + 'sign': str(date_time) + } + req = requests.post(self.sign_url, data=data) + sign = req.text + return sign + + def get_html(self, sign, time_date, page): + Headers = { + "user-agent": "yuanrenxue.project", + "cookie": "Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1648698333,1648863299; " + "Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1648867785; qpfccr=true; no-alert3=true" + } + url = f"https://match.yuanrenxue.com/api/match/1?page={page}&m={sign}%E4%B8%A8{time_date}" + print(url) + req = requests.get(url=url, headers=Headers) + return json.loads(req.text) + + def run(self): + data_len = 0 + data_sum = 0 + for page in range(1, 6): + t = int(time.time()) * 1000 + 100000000 + print(t) + sign = self.get_sign(t) + print(sign) + res = self.get_html(sign, int(t / 1000), page) + print(res) + data_list = res.get('data') + data_len += len(data_list) + for data in data_list: + data_sum += data.get('value') + time.sleep(1) + + print(data_sum, data_len) + print(data_sum / data_len) + + +if __name__ == '__main__': + app = App() + app.run() diff --git a/猿人学第1题-js混淆-乱码-无限debugger/js代码.js b/猿人学第1题-js混淆-乱码-无限debugger/js代码.js index d3287d9..471ba82 100644 --- a/猿人学第1题-js混淆-乱码-无限debugger/js代码.js +++ b/猿人学第1题-js混淆-乱码-无限debugger/js代码.js @@ -201,5 +201,8 @@ function binl2b64(d) { return f }; -f = hex_md5('1648906681000'); -console.log(f); + +module.exports = + { + hex_md5 + }; \ No newline at end of file diff --git a/猿人学第1题-js混淆-乱码-无限debugger/server.js b/猿人学第1题-js混淆-乱码-无限debugger/server.js new file mode 100644 index 0000000..cbe2731 --- /dev/null +++ b/猿人学第1题-js混淆-乱码-无限debugger/server.js @@ -0,0 +1,18 @@ +const express = require('express'); +const app = express(); +const encryption = require("./js代码"); +var bodyParser = require('body-parser'); +app.use(bodyParser()); + + +app.post('/get_sign', function (req, res) { + let result = req.body; + let sign = result.sign; + console.log(sign); + result = encryption.hex_md5(sign); + res.send(result.toString()); +}); + +app.listen(3001, () => { + console.log("开启服务,端口3001") +});