Commit b5d1ac28 by yexing

[yx] update

parents
node_modules
pnpm-lock.yaml
eslint.config.js
.vscode
tmp
node环境
npm install crypto-js
python环境
pip install requests loguru
This diff is collapsed. Click to expand it.
import CryptoJS from "crypto-js";
import Fingerprint2 from "@fingerprintjs/fingerprintjs";
const getFtoken = (ip) => {
return new Promise((resolve) => {
Fingerprint2.get({
excludes: {
enumerateDevices: true
}
}, (components) => {
const values = components.map(component => component.value);
const ipHash = CryptoJS.MD5(ip).toString();
values.push({
key: 'ip',
value: ipHash
});
const ftoken = Fingerprint2.x64hash128(values.join(''), 31);
resolve(ftoken);
});
});
}
!(async()=>{
console.log(await getFtoken("113.118.170.225"));
})();
import CryptoJS from "crypto-js";
import crypto from "crypto";
const fnencrypt2 = (password) => {
const publicKey = '-----BEGIN PUBLIC KEY-----\n' + 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVgVY+s5P31zLTKrTc7Kk3F6Si\n' + 'BmeQpGY5+f4ldvj2lffvrwrh+PrERJY1JrsZbtASzzFzcyPw7eE8YNYff3KV5bVe\n' + 'gE49WtqDv84JWpvkp3QpsH2mW0ro74BF/dyAE6LYq29H2fYTTsxMH7Ey/cE41Nu1\n' + 'abQ6vV5WZiHPKHychQIDAQAB\n' + '-----END PUBLIC KEY-----';
const rsaPassWord = crypto.publicEncrypt({
key: publicKey,
padding: crypto.constants.RSA_PKCS1_PADDING,
}, Buffer.from(password, "utf8")).toString("base64");
return rsaPassWord;
}
const encodeSign = (ref) => {
const { username, password } = ref;
const privateKey = "c9c793e1aaacb20a3bb2c40b6aadad120e8825898809a95e90462ca91b1ae416";
const str = privateKey + "&" + username + "&" + password;
return CryptoJS.HmacSHA256(str, privateKey).toString(CryptoJS.enc.Base64);
}
export const main = (ref) => {
const [username, password, blackbox] = ref;
const signPass = fnencrypt2(password);
const sign = encodeSign({
username,
password: signPass
});
// new Date().toDateString()
const ftoken = CryptoJS.MD5(username + "123").toString();
return JSON.stringify({
username,
password: signPass,
verificationType: "2",
validCode: "",
challenge: "",
riskControl: {
ftoken,
blackbox
},
sign
});
}
// console.log(main("GS0310883", "abcd654321A"));
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// eslint-disable-next-line no-unused-vars
import { traverse, parse, types as t, template } from "@babel/core";
import { generate } from "@babel/generator";
import fs from "fs";
// //static.tongdun.net/us/fm.js?t= (new Date().getTime() / 3600000).toFixed(0)
const jsCode = fs.readFileSync("jt/blackbox/dec.js") + '';
const stringMap = JSON.parse(fs.readFileSync("jt/blackbox/stringMap.json") + '');
const ast = parse(jsCode);
traverse(ast, {
"BinaryExpression": (path) => {
// console.log(path.toString());
const { confident, value } = path.evaluate();
if (confident && isFinite(value)) {
path.replaceWith(t.valueToNode(value));
}
},
"MemberExpression": (path) => {
// console.log(path.toString());
if (
t.isIdentifier(path.node.object, { name: "ZE" })
&& t.isNumericLiteral(path.node.property)
) {
const value = stringMap[path.node.property.value];
const ppath = path.parentPath;
if (ppath.isMemberExpression()
&& path.key === "property"
&& !(/\.|^\d/.test(value))
) {
path.replaceWith(t.identifier(value));
ppath.node.computed = false;
} else {
path.replaceWith(t.stringLiteral(value));
}
}
},
});
traverse(ast, {
"WhileStatement": (path) => {
// console.log(path.toString());
const switchStmt = path.get("body.body.0");
if (!switchStmt.isSwitchStatement()) return;
const varDec = path.getPrevSibling();
const name = varDec.get("declarations.0.id").node.name;
varDec.remove();
// if (name === 'y') debugger;
const caseMap = new Map();
let test; // Ternary expression
for (const casePath of switchStmt.get("cases")) {
const testValue = casePath.node.test?.value;
const blockStmt = casePath.get("consequent.0");
blockStmt.traverse({
"AssignmentExpression": (ipath) => {
if (
t.isIdentifier(ipath.node.left, { name })
&& (t.isNumericLiteral(ipath.node.right)
|| t.isNumericLiteral(ipath.node.right?.consequent))
) {
test ??= ipath.get("right.test").node;
ipath.remove();
}
},
"BreakStatement": (ipath) => {
ipath.remove();
}
});
caseMap.set(testValue, blockStmt.node.body);
}
const value = Array.from(caseMap)
.sort(([a], [b]) => a - b)
.flatMap(([, node]) => node);
if (test) {
path.replaceWith(t.whileStatement(test, t.blockStatement(value)));
} else {
path.replaceWithMultiple(value);
}
}
});
const output = generate(ast).code;
fs.writeFileSync("js/blackbox/decAst.js", output);
/* eslint-disable no-undef */
wasm = i.instance.exports;
memories = [wasm.memory]
viewDWORD = (addr) =>{
const arr = new Uint32Array(memories[0].buffer.slice(addr, addr + 16));
return arr;
};
viewChar = (addr, size = 16) =>{
const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
return String.fromCharCode.apply(null, arr);
};
viewHEX = (addr, size = 16) =>{
const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
return (Array.from(arr, x =>x.toString(16).padStart(2, '0')).join(' '));
};
viewHexCode = (addr, size = 16) =>{
const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
return (Array.from(arr, x =>'0x' + x.toString(16).padStart(2, '0')).join(', '));
};
dumpMemory = (addr, size = 16) =>{
const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
return arr;
};
viewString = (addr, size = 16) =>{
const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
let max = size;
for (let i = 0; i < size; i++) {
if (arr[i] === 0) {
max = i;
break;
}
}
return String.fromCharCode.apply(null, arr.slice(0, max));
};
search = function(stirng) {
const m = new Uint8Array(memories[0].buffer);
const k = Array.from(stirng, x =>x.charCodeAt());
const match = (j) =>{
return k.every((b, i) =>m[i + j] === b);
};
const max = Math.min(10_000_000, m.byteLength || m.length);
for (let i = 0; i < max; i++) {
if (match(i)) {
console.info(i);
}
}
console.info('done');
}
\ No newline at end of file
// 浏览器环境
import JSEncrypt from "jsencrypt";
// eslint-disable-next-line no-unused-vars
const fnencrypt = (password) => {
const publicKey = '-----BEGIN PUBLIC KEY-----\n' + 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVgVY+s5P31zLTKrTc7Kk3F6Si\n' + 'BmeQpGY5+f4ldvj2lffvrwrh+PrERJY1JrsZbtASzzFzcyPw7eE8YNYff3KV5bVe\n' + 'gE49WtqDv84JWpvkp3QpsH2mW0ro74BF/dyAE6LYq29H2fYTTsxMH7Ey/cE41Nu1\n' + 'abQ6vV5WZiHPKHychQIDAQAB\n' + '-----END PUBLIC KEY-----';
const encryptor = new JSEncrypt();
encryptor.setPublicKey(publicKey);
const rsaPassWord = encryptor.encrypt(password);
return rsaPassWord;
}
/* eslint-disable no-unused-vars */
/* eslint-disable no-global-assign */
/* eslint-disable no-debugger */
!(function(){
"use strict";
const hook_fmOpt = () => {
// const _success = window._fmOpt.success;
// window._fmOpt.success = function () {
// debugger;
// return _success.apply(this, arguments);
// }
const _fmOpt = window._fmOpt;
window._fmOpt = new Proxy(_fmOpt, {
set() {
debugger;
return Reflect.set(...arguments);
},
get() {
return Reflect.get(...arguments);
}
});
}
hook_fmOpt();
const hookEval = () => {
const _eval = window.eval;
window.eval = function () {
debugger;
return _eval.apply(this, arguments);
}
}
const hookFunction = () => {
const _constructor = Function.prototype.constructor;
Function.prototype.constructor = function () {
debugger;
return _constructor.apply(this, arguments);
}
const _Function = Function;
Function = function () {
debugger;
return _Function.apply(this, arguments);
}
Function.prototype = _Function.prototype;
}
})();
import fs from "fs";
import wasm2js from "wasm2js";
function U(A) {
try {
var I = atob(A);
var g = I.length;
var B = new Uint8Array(g);
for (var Q = 0; Q < g; Q++) {
B[Q] = I.charCodeAt(Q);
}
return B.buffer;
} catch (A) {
console.error(A);
return null;
}
}
const extWasm = () => {
const cjsFp = "./js/wasm.cjs";
const wasmFp = "./jt/blackbox/dec.wasm";
const desFp = "./jt/blackbox/dec.js";
const jsCode = fs.readFileSync(desFp) + ''
const wasmCode = /AGFzbQEAAAABowE[A-Za-z0-9+_=/]+/g.exec(jsCode)[0];
fs.writeFileSync(wasmFp, Buffer.from(U(wasmCode)));
fs.writeFileSync(cjsFp, wasm2js(fs.readFileSync(wasmFp)));
}
extWasm();
import { VM, VMScript } from "vm2";
import fs from "fs";
import { dirname } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const jsCode = [`${__dirname}/proxy.js`, `${__dirname}/env.js`, `${__dirname}/../blackbox/dec.js`]
.map(x => fs.readFileSync(x))
.join("\r\n");
try {
const jsScript = new VMScript(jsCode, `${__dirname}/vm.js`);
const blackbox = new VM().run(jsScript);
console.log(blackbox);
} catch (e) {
console.trace(e);
}
\ No newline at end of file
/* eslint-disable no-unused-vars */
/* eslint-disable no-undef */
var window = dtavm.proxy(this, "window");
var document = dtavm.proxy({}, "document");
var navigator = dtavm.proxy({}, "navigator");
var location = dtavm.proxy({}, "location");
var localStorage = dtavm.proxy({}, "localStorage");
var sessionStorage = dtavm.proxy({}, "sessionStorage");
dtavm = {}
rawlog = console.log
dtavm.log = rawlog
delete rawlog
// 保护伪造函数toString
; (() => {
const $toString = Function.toString
const myFunction_toString_symbol = Symbol('('.concat('', ')_', (Math.random()) + '').toString(36))
const myToString = function () {
return typeof this === 'function' && this[myFunction_toString_symbol] || $toString.call(this)
}
function set_native(func, key, value) {
Object.defineProperty(func, key, {
enumerable: false,
configurable: true,
writable: true,
value: value
})
}
delete Function.prototype.toString
set_native(Function.prototype, "toString", myToString)
set_native(Function.prototype.toString, myFunction_toString_symbol, "function toString() { [native code] }")
globalThis.dtavm.func_set_native = (func, name) => {
//todo 系统函数没名字 native code
set_native(func, myFunction_toString_symbol, `function ${func.name || name || ''}() { [native code] }`)
}
}).call(this);
for (let key in Object.getOwnPropertyDescriptors(console)) {
if (typeof console[key] == "function") {
console[key] = function () { }
dtavm.func_set_native(console[key], key)
}
}
dtavm.proxy = function (obj, objname, type) {
function getMethodHandler(WatchName, target_obj) {
let methodhandler = {
apply(target, thisArg, argArray) {
if (this.target_obj) {
thisArg = this.target_obj
}
let result = Reflect.apply(target, thisArg, argArray)
if (target.name !== "toString") {
if (WatchName === "window.console") {
} else if (result instanceof Promise) {
result.then((data) => {
dtavm.log(`[${WatchName}] apply function name is [${target.name}], argArray is `, argArray, `result is `, data);
})
} else {
dtavm.log(`[${WatchName}] apply function name is [${target.name}], argArray is `, argArray, `result is `, result);
}
} else {
dtavm.log(`[${WatchName}] apply function name is [${target.name}], argArray is `, argArray, `result is `, result);
}
return result
},
construct(target, argArray, newTarget) {
var result = Reflect.construct(target, argArray, newTarget)
dtavm.log(`[${WatchName}] construct function name is [${target.name}], argArray is `, argArray, `result is `, result);
return result;
}
}
methodhandler.target_obj = target_obj
return methodhandler
}
function getObjhandler(WatchName) {
let handler = {
get(target, propKey, receiver) {
let result = target[propKey]
if (result instanceof Object) {
if (typeof result === "function") {
if (propKey !== "String") { // exclude
dtavm.log(`[${WatchName}] getting propKey is [`, propKey, `] , it is function`)
}
return new Proxy(result, getMethodHandler(WatchName, target))
}
else {
dtavm.log(`[${WatchName}] getting propKey is [`, propKey, `], result is [`, result, `]`);
}
return new Proxy(result, getObjhandler(`${WatchName}.${propKey}`))
}
if (typeof (propKey) !== "symbol") {
dtavm.log(`[${WatchName}] getting propKey is [`, propKey, `], result is [`, result, `]`);
}
return result;
},
set(target, propKey, value, receiver) {
if (value instanceof Object) {
dtavm.log(`[${WatchName}] setting propKey is [`, propKey, `], value is [`, value, `]`);
} else {
dtavm.log(`[${WatchName}] setting propKey is [`, propKey, `], value is [`, value, `]`);
}
try {
var result = Reflect.set(target, propKey, value, receiver);
return result;
} catch (e) {
// target[propKey] = value;
// return value;
}
},
has(target, propKey) {
var result = Reflect.has(target, propKey);
dtavm.log(`[${WatchName}] has propKey [`, propKey, `], result is [`, result, `]`)
return result;
},
deleteProperty(target, propKey) {
var result = Reflect.deleteProperty(target, propKey);
dtavm.log(`[${WatchName}] delete propKey [`, propKey, `], result is [`, result, `]`)
return result;
},
defineProperty(target, propKey, attributes) {
var result = Reflect.defineProperty(target, propKey, attributes);
dtavm.log(`[${WatchName}] defineProperty propKey [`, propKey, `] attributes is [`, attributes, `], result is [`, result, `]`)
return result
},
getPrototypeOf(target) {
var result = Reflect.getPrototypeOf(target)
dtavm.log(`[${WatchName}] getPrototypeOf result is [`, result, `]`)
return result;
},
setPrototypeOf(target, proto) {
dtavm.log(`[${WatchName}] setPrototypeOf proto is [`, proto, `]`)
return Reflect.setPrototypeOf(target, proto);
},
// preventExtensions(target) {
// dtavm.log(`[${WatchName}] preventExtensions`)
// return Reflect.preventExtensions(target);
// },
// isExtensible(target) {
// var result = Reflect.isExtensible(target)
// dtavm.log(`[${WatchName}] isExtensible, result is [`, result, `]`)
// return result;
// },
}
return handler;
}
if (type === "method") {
return new Proxy(obj, getMethodHandler(objname, obj));
}
return new Proxy(obj, getObjhandler(objname));
}
{
"type": "module",
"dependencies": {
"@fingerprintjs/fingerprintjs": "^2.1.5",
"crypto-js": "^4.2.0",
"jsencrypt": "^3.3.2",
"vm2": "^3.9.19",
"wasm2js": "^0.2.0"
},
"devDependencies": {
"@babel/core": "^7.26.10",
"@babel/generator": "^7.27.0",
"@babel/parser": "^7.27.0",
"@babel/template": "^7.27.0",
"@babel/traverse": "^7.27.0",
"@babel/types": "^7.27.0",
"@eslint/js": "^9.23.0",
"@types/crypto-js": "^4.2.2",
"eslint": "^9.23.0",
"globals": "^16.0.0"
}
}
import json
import subprocess
from pathlib import Path
from argparse import ArgumentParser
import requests
from requests.utils import dict_from_cookiejar
from loguru import logger
PROXIES = {
"http": "http://amazon456:abcd654321A@154.207.159.195:2333",
"https": "http://amazon456:abcd654321A@154.207.159.195:2333"
}
def runJs(fp: str, cmd: str):
command = [
'node',
'-e',
f"import({repr(fp)}).then(module => console.log({cmd}))"
]
result = subprocess.run(
command,
capture_output=True,
text=True,
encoding='utf-8'
)
if result.returncode == 0:
data = result.stdout.strip()
logger.info(f"Result: {data}")
return data
else:
logger.info(f"Error: {result.stderr}")
exit()
def shein_mer():
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
}
url = "https://us-fp.apitd.net/web/v2"
params = {
"partner": "shein_mer"
}
data = {
"data": runJs('./js/algo.js', "module.qA()")
}
response = requests.post(url, headers=headers, params=params, data=data, proxies=PROXIES)
logger.info(response.text)
logger.info(response)
return response
def login(data, usename):
headers = {
"time-zone": "America/Los_Angeles",
"Origin-Url": "https://sso.geiwohuo.com/#/login",
"SSO-Frontend-Version": "1.0.0",
"gmpsso-language": "CN",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
"Content-Type": "application/json",
"x-sso-scene": "gmpsso",
"x-bbl-route": "/login",
"Referer": "https://sso.geiwohuo.com/",
}
url = "https://sso.geiwohuo.com/sso/authenticate/login"
response = requests.post(url, headers=headers, data=data, proxies=PROXIES)
logger.info(response.text)
logger.info(response)
cookies = dict_from_cookiejar(response.cookies)
logger.info(f"{cookies=}")
tp = Path("./tmp")
if not tp.exists(): tp.mkdir()
with open(tp / f"cookies_{usename}.json", 'w') as f:
json.dump(cookies, f, indent=2)
def am0(data):
headers = {
"content-type": "application/json;charset=UTF-8",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
url = "https://zpnv.shein.com/api/zpnv/am0"
data = {
"data": data,
"appName": "shein"
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, data=data, proxies=PROXIES)
logger.info(response.text)
logger.info(response)
return response.json()["info"]["token"]
def main():
global PROXIES
parser = ArgumentParser()
parser.add_argument("-u", "--usename", required=True)
parser.add_argument("-p", "--password", required=True)
parser.add_argument("-r", "--proxy", required=True)
args = parser.parse_args()
usename, password = args.usename, args.password
PROXIES["https"] = PROXIES["http"] = args.proxy
# token = shein_mer().text
# anti_in = "0_3.1.0_910d6f_ajUh_yD-aHbr82uG5QIojfufw76FjJl6vxsTvilaPNp5_8r5Zxs59b2NJG-uApjCyHjLMq6ZiVpUsiAOqUmiDTJwUnh_9WVSPePMzOh0yPO8V1bFp4WqNDNQwYZZ3qNn4-Ok07npLX5jbXrEM2RyXold3FP0Dj_9173Hfa2kQSwQTbeQkOaIGh4ZI3y4vxzQDCIsaEa-iAebAgLhl96rdvBQxBYAvZlfRpkVTR4OodOKGc1CuO2kvGAVEcjnuRqMu0bUWc9LtdFb5nIHdpE4YR_YDTsStESuQrrUKf8Re1JcS4ZbwT2_s03f6Ev_BQw_Fx7EFPVUtRcJM0ZYlXo8xzLKXTWxzDo_2fBSpAZLtRc2aHVOby65ANXvdG0_8237Vg3B5vE9eX-6J5SLMi9LfJ2YUFT6MUaWgXjCRCv-oZkNpgQpoFrEII-kSvg5SCMI6o-gEl8sFeX1GFrWDSatxGQpt6D7l_XVWhcTcomI650_rirIdAL6xGekg_699BGYAszEGinCe5AwOX-UwTz1uEr1T6wirUeLpI1CcdjjmV1ZgYJJEjSaZnZ9iHt5U8AytzNIflAQAvzeAwJYFbdmiahuC3ob5eJpVfI1ZZqaS1gXUYedE09RQxv_fs9BP8lsLGRvNcefDSq0xbtsQ42GA2rRSbOeZltWFdSFUwVqOSY949G5ZW83rFA_zJFiU7gox3N7lXXxXOceARzFzbXtWUgm3PVe3P2YzkKI7y2Mvi_kbqAqsC6twvTwKnGpsTfM_T6Yk9FORGOwed7vqeuLoHb9G6BxE6UGyqtGfTSvppEzy6Vhm5J7_nDJ11s4b3z6Z5IxXU_Nmw51uiCcc-UzxzqixdfrvlzGJwC7mGwaenVfA_XeVDuvS2cHpUdZ0GjkRuXQeqbH5skSkrb3Iri-Hiu2ZgBAjwcvtGvIxXWgIovtglFbCY7RJh-qGo1R-XOhpQ1vmeiKUN5qSgiQ_wW25bt0_lULgpBmT4OgnSc6Lc3ULZN0__XDPgrKPE28SX3rjynQSPA2MU6hHZ0rirvhWn9-kmjG28uY6QWLl3q6IdCQyn1zVAihpS-ZVnokrcH6G2NekYE_XoP9uQyo8NnZpnmiIu63qoxX3T8ECAozrxaroRzWKy2bSnPIdy0SKTpzzPmia26nR6Dfv9UVmBEs14i9UbF1WLMaHFT51mqTKF8YMtRuluM8JgCjd2KSnLiryRrNLdrM-X2cWK3yMKq34ke1ZpSB8nB5ryRyPCQF9XqEZK5TlGnWGXTsSjVnBFFUBFWNWNV-AyrGllDDMXtTP-JovXz5jfJ5q5uz1UwlgkLOd2qvNCxYMi1wQteDb-zbHVc6FUwe_gLNRpeLvPHsOeradYZZw_4oNsB9EXz4S9GyefaIPaC18GhHxoa-THQYm7SUQd03MnRvMRXTsYAPyMlSLUYwUzM_8uzq-nCqkqySQfYqwLjGU-DLozBMVVQbKcBvJbNCXqtyBQgRPfBm9PrEZmachySLE0gcOGAf6bcGdAzTDX2ENHSycuISYS-BcEYf813lr-wmL9nm5PCzDKxAa-1aRgpyge29IoWbBRDwDxd7Dk0A0djCyRpe5M_bTNkhbnn1lux2DFaEXfUx0SI4naa29VNPx-U9D3BJwQJIyzs5zD4mY77CAsIFNdkZGu14oFX3U80K756YLEXESuNgbQRYDip_D-9VPMvMaxIK8gzzv2S5bpCnqlgjg_J2-uL_SvpHJyRNwcSJ65WKG9NL1CwrEZNaZm7krJ6sw4a7t8cqYo6l2ZwQxvO2giPNpYf_Z7Y8YAXJvdbAeFGmQx8DcnOUKKFNqMcyNDq3FmExJuBtLZAZy7HrIEb5TpnmyPaFI2NFg_Sx1uZmFKf29NRq1mQO6iUySAKMOwMG5t4fW7_ZKRtQIVZmgNnf9DbdrSjm2SWzOhI5x9fq42CK038dkodQxBEHqqfFuODi_I6TftYk4ePOAixt1K4lfhIosiRbYA_QO2Ocy7JOrY97p1WW775nlIj-qHXGAONZBxFoDI11VoNg6if3obIuseXcxNO1YrE2pCk1fasnq5dsIYreL3YbZATk1hQ9U8qXISJ_kYm7z-mHcA3_bvm-2Z7X8LvALLx7gKdAKJ-bZx6DlK3O0rUlLbZo7VO9LUJ_q7OTIg54GWkDJAtRJiuShsJAYv4jwZE2m36HIMumuoG3WTe4fa0T-sqxPt9S3rJHmXW6ey8I1sRmcwv-MKqFC483UzRpNiSCFj1txNOtPlGoLqEsnBVifF6mx6Ifdu--GIivJL0CKhrIJW9l175sdLZBQbNUuphvatUWV6AnmadA9f6L28nvdKuZBGBRBu0YfPhwXk4pt5ZaeTaTzWlF1hRovthEQOXXuicHp6Ytu0wiZ-tTSDHVCTk9dn3L8ndMC8cVXBlXfMYwO1GsMJhRHrloAqLxZiUh2HHmHNHfKm5E0nWz6yL21j2BiUHDJ4yPbZvBGuZ7-L7XNMF1eDTPdOhb1CmRAPmfHsczPknihZ85nKmDd1mVq3mDYrvLMZCkK0YxbdRBZ_ig-4gX7_Pbgah4WVep2tXtYZDthYYqLRFhZlu2L9mEF1S8E7R-dtXtb4_Tuv8Irezqitd9PcpgiPbLNUY6286yd2HLDIa6Nia7tvlDV1_RWEUwNFXkeSUBQBzb6gVxpXjNK5Ji3gaxBiHcEF0fooT_n-_b0jlDMsbVTynss56Sg3rcKEfDgHYRMAK2"
# am0(anti_in)
blackbox = runJs('./js/algo.js', f"module.mC()")
data = runJs('./js/init.js', f"module.main({[usename, password, blackbox]})")
login(data, usename)
if __name__ == "__main__":
main()
import json
import requests
PROXIES = {
"http": "http://amazon456:abcd654321A@154.207.159.195:2333",
"https": "http://amazon456:abcd654321A@154.207.159.195:2333"
}
def test_cookies():
headers = {
"accept": "*/*",
"accept-language": "en-US,en;q=0.9",
"cache-control": "no-cache",
"pragma": "no-cache",
"priority": "u=1, i",
"referer": "https://sso.geiwohuo.com/service-worker.js",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
"x-sso-scene": "sw"
}
with open("tmp/cookies_GS0310883.json", 'r') as f:
cookies = json.load(f)
url = "https://sso.geiwohuo.com/sso/homePage/v2/list"
params = {
"templateType": "0"
}
response = requests.get(url, headers=headers, cookies=cookies, params=params, proxies=PROXIES)
print(response.text)
print(response)
if __name__ == '__main__':
test_cookies()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment