diff --git a/wxapp/bnmdhg_wx.js b/wxapp/bnmdhg_wx.js index 25fb0fb..a6dcb3c 100644 --- a/wxapp/bnmdhg_wx.js +++ b/wxapp/bnmdhg_wx.js @@ -4,7 +4,9 @@ @Date: 2024.06.07 19:15 @Description: 测试 ------------------------------------------ -#Notice: +#Notice: 只适用于购买了luflytoken的 购买联系860562056 +变量luflytoken 填写luflytoken +变量wxbnmdwxid 填写wxbnmdwxid 多账号&分割或者换行 ⚠️【免责声明】 ------------------------------------------ 1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。 @@ -17,13 +19,17 @@ */ const $ = new Env("巴奴毛肚小程序"); -let ckName = `testA`; +let ckName = `wxbnmdwxid`; const strSplitor = "#"; const envSplitor = ["&", "\n"]; -const notify = $.isNode() ? require("../sendNotify") : ""; +const crypto = require("crypto-js"); +const notify = $.isNode() ? require("./sendNotify") : ""; const axios = require("axios"); const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram" - +const key = "bfc5e947cd84c7ced1ee48d28fb3e90f"; +let luflytoken = process.env.luflytoken || "" +let wxcenter = 'http://w.smallfawn.top:5789' +let appid = 'wx71373698c47f9a9f' class Public { async request(options) { return await axios.request(options); @@ -34,17 +40,158 @@ class Task extends Public { super(); this.index = $.userIdx++ - let user = env.split("#"); - this.name = user[0]; - this.passwd = user[1]; + let user = env.split(strSplitor); + this.wxid = user[0]; } + getUUID(_0x4b4b65 = 16, _0x14813d = 36) { + const _0x181bd6 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""); + const _0x295ca7 = []; + let _0x4713fe = 0; + if (_0x4b4b65) { + for (_0x4713fe = 0; _0x4713fe < _0x4b4b65; _0x4713fe++) { + _0x295ca7[_0x4713fe] = _0x181bd6[0 | Math.random() * _0x14813d]; + } + } else { + let _0x540406; + for (_0x295ca7[8] = _0x295ca7[13] = _0x295ca7[18] = _0x295ca7[23] = "-", _0x295ca7[14] = "4", _0x4713fe = 0; _0x4713fe < 36; _0x4713fe++) { + if (!_0x295ca7[_0x4713fe]) { + _0x540406 = 0 | 16 * Math.random(); + _0x295ca7[_0x4713fe] = _0x181bd6[19 === _0x4713fe ? 3 & _0x540406 | 8 : _0x540406]; + } + } + } + return _0x295ca7.join(""); + } + getHeaders(options, _0x32d686, authorization) { + const keyOptions = { + app_key: "KlZ4LqOF", + app_secret: "HoBJTYXdwn" + }; + const _0x3aaf0a = { + t: Math.floor(new Date().getTime() / 1000), + n: this.getUUID(), + ...keyOptions + }; + const _0x419328 = Object.values(_0x3aaf0a).join(""); + + const sign = this.stringToLowerCase(this.stringToLowerCase(_0x419328)).split("").reverse().join(""); + const header = { + 'Connection': 'keep-alive', + 'content-type': 'application/json', + 'uuid': options.uuid, + 'platform_version_code': 'iOS 16.6', + 'authorization': authorization, // + 'tenancy_id': 'banu', + 'app_key': 'KlZ4LqOF', + 'code': 'f22b68d1c74c3a66aa7a1b199bcd4e20', // + 'platform_version_name': 'iPhone 11', + 'platform_version_weapp': '8.0.50', + 't': _0x3aaf0a.t, + 'n': _0x3aaf0a.n, + 'platform_version_sdk': '3.5.8', + 'sign': sign, + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.50(0x1800323d) NetType/4G Language/zh_CN', + 'Referer': 'https://servicewechat.com/wx71373698c47f9a9f/474/page-frame.html' + } + + if (_0x32d686) { + const _0xa2075e = new URLSearchParams({ + ...options, + enc_data: _0x32d686 + }).toString(); + const code = this.stringToLowerCase(this.stringToLowerCase(_0xa2075e)).split("").reverse().join(""); + header.code = code; + } + return header; + } + stringToLowerCase(str) { + return crypto.MD5(str).toString().toLowerCase(); + } + decrypt(_0x3c73c4) { + const _0x3218f0 = crypto.lib.WordArray.random(16).toString(); + const _0x30b65e = JSON.stringify(_0x3c73c4); + const _0x429ee1 = crypto.AES.encrypt(_0x30b65e, crypto.enc.Utf8.parse(key), { + iv: crypto.enc.Utf8.parse(_0x3218f0), + mode: crypto.mode.CBC + }).toString(); + return crypto.enc.Base64.stringify(crypto.enc.Utf8.parse(JSON.stringify({ + iv: _0x3218f0, + encrypted_data: _0x429ee1 + }))); + } + async getcode() { + let options = { + url: `${wxcenter}/api/getcode`, + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST', + data: { "luflyKey": "" + luflytoken, "wxid": "" + this.wxid, "appid": "" + appid } + } + let { data: result } = await this.request(options); + if (result.status) { + let code = result.data + $.log(`账号[${this.wxid}] 获取code成功[${code}]`); + let { member_id: memberId, openid: authorization } = await this.login(code) + const headerObj = {}; + const data = { + member_id: memberId + }; + try { + headerObj.uuid = this.getUUID(); + const res = await axios.get("https://cloud.banu.cn/api/sign-in/days", { + params: data, + headers: this.getHeaders(headerObj, false, authorization) + }); + if (res.data.data.is_sign_in) { + $.log(`账号[${this.wxid}] 重复签到`); + } else { + const decryptData = this.decrypt(data); + const res = await axios.post("https://cloud.banu.cn/api/sign-in", { + enc_data: decryptData + }, { + headers: this.getHeaders(headerObj, decryptData, authorization) + }); + $.log("签到:" + res.data.message); + } + const info = await axios.get("https://cloud.banu.cn/api/member/statistic", { + params: data, + headers: this.getHeaders(headerObj, false, authorization) + }); + const result = "\nMember_id:" + memberId + "\n用户名:" + info.data.data.name + "\n总积分:" + info.data.data.points; + } catch (err) { + + console.log("签到失败:" + err + " | 签到时间:" + Date.now()); + } + } else { + console.log(result); + } + } + async login(code) { + let url = 'https://cloud.banu.cn/api/wx/weapp/auth'; + let data = { + 'app_id': 'wx71373698c47f9a9f', + 'code': code + } + const headerObj = {}; + headerObj.uuid = this.getUUID(); + let headers = this.getHeaders(headerObj, false, ""); + + let { data: res } = await this.request({ + url, + method: "POST", + headers, + data + }) + return res.data; + } async run() { + await this.getcode() - console.log(this.index); } } diff --git a/wxapp/kangshifu.js b/wxapp/kangshifu.js index b25b9e0..6466d34 100644 --- a/wxapp/kangshifu.js +++ b/wxapp/kangshifu.js @@ -28,7 +28,6 @@ const notify = $.isNode() ? require("../sendNotify") : ""; const axios = require("axios"); const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram" let luflytoken = process.env.luflytoken || "" -let wxkangshifuwxid = process.env.wxkangshifuwxid || "" let wxcenter = 'http://w.smallfawn.top:5789' let appid = 'wx54f3e6a00f7973a7' class Public { @@ -42,7 +41,7 @@ class Task extends Public { super(); this.index = $.userIdx++ let user = env.split(strSplitor); - this.name = user[0]; + this.wxid = user[0]; this.passwd = user[1]; } @@ -53,7 +52,7 @@ class Task extends Public { 'Content-Type': 'application/json' }, method: 'POST', - data: { "luflyKey": "" + luflytoken, "wxid": "" + wxkangshifuwxid, "appid": ""+appid } + data: { "luflyKey": "" + luflytoken, "wxid": "" + this.wxid, "appid": "" + appid } } let { data: result } = await this.request(options); if (result.status) { @@ -108,7 +107,7 @@ class Task extends Public { } - async run(){ + async run() { await this.getcode() } } diff --git a/wxapp/wx_ziwi.js b/wxapp/wx_ziwi.js index 2600062..8740290 100644 --- a/wxapp/wx_ziwi.js +++ b/wxapp/wx_ziwi.js @@ -3,9 +3,9 @@ * 积分换 猫粮狗粮 * 变量名wxziwiwxid 值为lufly登录授权的微信id 用于获取微信CODE 来刷新CK * 变量名luflytoken 谨慎使用加密本 防止偷取TOKEN - * 变量名:ZIWIAUTH * - * 变量值:https://ziwi.gzcrm.cn/json-rpc? Headers中的authorization 去掉Bearer 去掉Bearer 去掉Bearer + * + * * 多账号& 或新增变量 * scriptVersionNow = "0.0.1"; */ @@ -19,33 +19,25 @@ let userIdx = 0; let userList = []; let appid = 'wxb26a710e583b05dc' let wxcenter = 'http://w.smallfawn.top:5789' -let msg = "" class Task { constructor(str) { this.index = ++userIdx; - this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符 + this.wxid = str.split(strSplitor) //单账号多变量分隔符 this.ckStatus = true; //定义在这里的headers会被get请求删掉content-type 而不会重置 this.artList = [] + this.ck = '' } async main() { - if (process.env['wxziwiwxid']) { - await this.getCode() - } - await this.task_sign() - await this.act_list(); - if (this.artList.length > 0) { - for (let act of this.artList) { - await this.task_like(act) - await this.task_share(act) - } - } + + await this.getCode() + } async getCode() { let { body: result } = await $.httpRequest({ method: 'post', headers: { 'Content-Type': 'application/json' - }, url: wxcenter + '/api/getcode', body: JSON.stringify({ "luflyKey": process.env['luflytoken'], "wxid": "" + process.env['wxziwiwxid'], "appid": "wxb26a710e583b05dc" }) + }, url: wxcenter + '/api/getcode', body: JSON.stringify({ "luflyKey": process.env['luflytoken'], "wxid": "" + this.wxid, "appid": "wxb26a710e583b05dc" }) }) if (result) { console.log(result) @@ -65,7 +57,15 @@ class Task { if ('result' in result) { if ('jwt' in result.result) { console.log(`刷新CK成功`) - return this.ck = result.result.jwt + this.ck = result.result.jwt + await this.task_sign() + await this.act_list(); + if (this.artList.length > 0) { + for (let act of this.artList) { + await this.task_like(act) + await this.task_share(act) + } + } } }