Commit a3affa8e authored by wangmingming's avatar wangmingming

222

parent 92178ab7
This source diff could not be displayed because it is too large. You can view the blob instead.
let c = eval(`
function kPMY(a,b) { return function i(r, n) {
var u = ["qJfRra", "zNvUy3rPB24", "q1zJvKP3", "rezVv0Pbwq", "rezRterOvtfbqq", "sfznyKLcmgK", "sgXRsG", "Dw5KzwzPBMvK", "q1zRv0LcmhO", "rfzntKnsC2PczZvMrNL3m09NrvbxqtbArvrvyW", "r0zJweX4CZC", "swW4zeX4rtq", "qwTjtK93zhm", "qMXnzLb3", "ndqXndK5mLfOChfLzW", "sZnrnKr6rvfmEuOVtxDbneD5wwXAAwDAsNDjovbhrwHfAtqZq2DSu0Hdmfrqz0vbwfjvBuDQA1LhmffluhDfz0H4sLbbm3rgwKz0zueWotHurZG", "r2Trv1b4C2LfuNbu", "qwTjtK93", "mJHnzgjHshG", "r0znsKP4vtfeuq", "qZbvs0LOttq", "qZbzsKP3ma", "sgXRCvb3ws9czZa", "odG5otiWrfDTELfk", "mtyXnZC5me9iBhzfvG", "r1vnyK9bqwTbuvjs", "mJKYota0meLNBw9hBq", "ow1vuNPKDG", "qJbv", "odiYntLgyNH1v0i", "mti1mZmZneLgwvbKDa", "qMXnweXbqsS", "C3LTyM9S", "revnweTbqs9cD1e", "qwW4zeX4rtq", "r1vjteLOB3G", "nZCWnJa3rejtwwv0", "mLHVrhLlBG", "r2Tns0L3", "ChjVDg90ExbL", "y29UC3rYDwn0B3i", "qtfNzeXND1PezW", "zgvMAw5LuhjVCgvYDhK", "qwXJs0jbttrpqMHAq1m0r0LOrq", "BgvUz3rO"];
return (i = function (n, v) {
var t = u[n -= 357];
void 0 === i.zDSJcn && (i.AqpMmW = function (r) {
for (var n, u, v = "", t = "", e = 0, f = 0; u = r.charAt(f++); ~u && (n = e % 4 ? 64 * n + u : u, e++ % 4) ? v += String.fromCharCode(255 & n >> (-2 * e & 6)) : 0) u = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(u);
for (var s = 0, z = v.length; s < z; s++) t += "%" + ("00" + v.charCodeAt(s).toString(16)).slice(-2);
return decodeURIComponent(t);
}, r = arguments, i.zDSJcn = !0);
var e = n + u[0],
f = r[e];
return f ? t = f : (t = i.AqpMmW(t), r[e] = t), t;
})(r, n);
}(a,b) }
`)
console.log(kPMY(1,2))
\ No newline at end of file
......@@ -57,10 +57,10 @@ const renameFunc =
let {id, params, body} = node;
let name = id.name;
if (params.length != 2 || body.body.length != 1 ||
!types.isReturnStatement(body.body[0]) || !types.isCallExpression(body.body[0].argument)) {
return;
}
// if (params.length != 2 || body.body.length != 1 ||
// !types.isReturnStatement(body.body[0]) || !types.isCallExpression(body.body[0].argument)) {
// return;
// }
let binding = parentPath.scope.getBinding(name);
......@@ -83,6 +83,7 @@ traverse(ast, renameFunc);
allNewNames.clear();
let funcNames = []
// traverse(ast, {
// FunctionDeclaration(path) {
......@@ -447,6 +448,8 @@ traverse(ast, {
}
}
// console.log(generator(path.node).code)
let binding = scope.getBinding(id.name);
console.log(generator(path.node).code)
// let {id} = parentPath.parentPath.node
funcs[id.name] = {
array: generator(path.node).code
......
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.
const fs = require('fs');
const types = require("@babel/types");
const parser = require("@babel/parser");
const traverse = require("@babel/traverse").default;
const generator = require("@babel/generator").default;
//js混淆代码读取
process.argv.length > 2 ? encodeFile = process.argv[2] : encodeFile = "./captcha.js";
process.argv.length > 3 ? decodeFile = process.argv[3] : decodeFile = "./decodeResult.js";
//将源代码解析为AST
let sourceCode = fs.readFileSync(encodeFile, {encoding: "utf-8"});
let ast = parser.parse(sourceCode);
console.time("处理完毕,耗时");
function getRandomName(length) {
let initArr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
let puzzleArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
let ranInx = Math.floor(Math.random() * initArr.length);
let randomName = initArr[ranInx];
for (var i = 1; i < length; i++) {
ranInx = Math.floor(Math.random() * puzzleArr.length);
randomName += puzzleArr[ranInx];
}
return randomName;
}
let allNewNames = new Map(); //定义一个全局变量,保存需要处理的函数
function getUnusedName() {//获取未被使用的名称,返回 Identifier 类型。
do {
var newName = "$C_" + getRandomName(3);
} while (allNewNames.has(newName))
allNewNames.set(newName, 1);
return newName;
}
function getUnusedIdentifier() {//获取未被使用的名称,返回 Identifier 类型。
do {
var newName = "$C_" + getRandomName(3);
} while (allNewNames.has(newName))
allNewNames.set(newName, 1);
let UnusedIdentifier = types.Identifier(newName);
return UnusedIdentifier;
}
const renameFunc =
{
FunctionDeclaration(path) {
let {node, parentPath} = path;
let {id, params, body} = node;
let name = id.name;
// if (params.length != 2 || body.body.length != 1 ||
// !types.isReturnStatement(body.body[0]) || !types.isCallExpression(body.body[0].argument)) {
// return;
// }
let binding = parentPath.scope.getBinding(name);
if (!binding || !binding.constant) {
return;
}
// console.log('getName', name)
let newNameId = getUnusedIdentifier();
for (let referPath of binding.referencePaths) {
referPath.replaceWith(newNameId);
}
let newName = newNameId.name;
allNewNames.set(newName, name)
path.node.id.name = newName;
}
}
traverse(ast, renameFunc);
var code = generator(ast, opts = {jsescOption: {"minimal": true}}).code;
fs.writeFileSync(decodeFile, code);
allNewNames.clear();
let funcNames = []
// traverse(ast, {
// FunctionDeclaration(path) {
// let node = path.node;
// if (node.id.name === 'Aa') {
// let code = generator(node).code;
// if (code.includes('Aa = function ')) {
// console.log(node.id.name)
// let scope = path.parentPath.parentPath.scope;
// getBinding(scope, node.id.name, e => {
// // console.log(e.parent.type, generator(e.parent).code)
// if (types.isVariableDeclarator(e.parent)) {
// let initIdName = e.parent.id.name;
// funcNames.push(initIdName)
// getBinding(e.parentPath.parentPath.parentPath.parentPath.scope, initIdName, (i => {
// // console.log(initIdName, i.parent.type )
//
// if (types.isCallExpression(i.parent)) {
// // console.log(generator(i.parent).code)
// let {arguments} = i.parent
// if (arguments.length === 1 && types.isNumericLiteral(arguments[0])) {
// let value = Aa(arguments[0].value)
// console.log(arguments[0].value, value)
// i.parentPath.replaceWith(types.StringLiteral(value))
//
// }
// }
//
// }))
// } else if (types.isCallExpression(e.parent)) {
// let {arguments} = e.parent
// if (arguments.length === 1 && types.isNumericLiteral(arguments[0])) {
// let value = Io(arguments[0].value)
// e.parentPath.replaceWith(types.StringLiteral(value))
//
// }
// }
// })
//
//
// }
// }
//
//
// }
// })
console.log(funcNames)
// traverse(ast, {
// CallExpression(path) {
// let node = path.node;
// let {callee, arguments} = node;
// if (funcNames.includes(callee.name) && arguments.length === 1 && types.isNumericLiteral(arguments[0])){
// let value = Aa(arguments[0].value)
// console.log(callee.name, arguments[0].value , value)
// if (value)path.replaceWith(types.StringLiteral(value))
//
// }
// }
// })
function n(n) {
for (var i = atob(n), l = "IkEiYF9", a = "", c = 0; c < i.length; ++c) {
var u = l.charCodeAt(c % 7);
a += String.fromCharCode(u ^ i.charCodeAt(c))
}
return a
}
function getBinding(scope, name, func) {
let binding = scope.getBinding(name);
console.log(`scope.get(${name}).length = ${binding.references}`)
if (binding.references > 0) {
for (const referencePath of binding.referencePaths) {
func(referencePath)
}
}
}
// traverse(ast, {
// FunctionDeclaration(path) {
// let node = path.node;
// if (node.id.name === 'i') {
// let code = generator(node).code;
// if (code.includes('charCodeAt')) {
// // console.log(node.id.name)
// let scope = path.parentPath.parentPath.scope;
// getBinding(scope, node.id.name, e => {
// // console.log(e.parent.type, generator(e.parent).code)
// if (types.isVariableDeclarator(e.parent)) {
// let initIdName = e.parent.id.name;
// getBinding(e.parentPath.parentPath.parentPath.scope, initIdName, (i => {
// // console.log(initIdName, i.parent.type )
//
// if (types.isCallExpression(i.parent)) {
// // console.log(generator(i.parent).code)
// let {arguments} = i.parent
// if (arguments.length === 1 && types.isStringLiteral(arguments[0])) {
// let value = n(arguments[0].value)
// // console.log(arguments[0].value, value)
// i.parentPath.replaceWith(types.StringLiteral(value))
//
// }
// }
//
// }))
// } else if (types.isCallExpression(e.parent)) {
// let {arguments} = e.parent
// if (arguments.length === 1 && types.isStringLiteral(arguments[0])) {
// let value = n(arguments[0].value)
// e.parentPath.replaceWith(types.StringLiteral(value))
//
// }
// }
// })
//
//
// }
// }
//
//
// }
// })
function H(t) {
return f(U) === "function" ? U(t) : function (t) {
var e,
n,
r,
a,
o = [],
i = 0,
c = t.length;
try {
if (/[^+/=0-9A-Za-z]/.test(t) || /=/.test(t) && (/=[^=]/.test(t) || /={3}/.test(t))) return null;
for (c % 4 > 0 && (c = (t += p.Array(4 - c % 4 + 1).join("=")).length); i < c;) {
for (n = [], a = i; i < a + 4;) n.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++)));
for (r = [((e = (n[0] << 18) + (n[1] << 12) + ((63 & n[2]) << 6) + (63 & n[3])) & 255 << 16) >> 16, 64 === n[2] ? -1 : (65280 & e) >> 8, 64 === n[3] ? -1 : 255 & e], a = 0; a < 3; ++a) (r[a] >= 0 || 0 === a) && o.push(String.fromCharCode(r[a]));
}
return o.join("");
} catch (t) {
return null;
}
}(t);
}
// traverse(ast, {
// CallExpression(path) {
// let node = path.node;
// if (node.callee.name === 'H') {
// let {arguments} = node
// if (arguments.length === 1 && types.isStringLiteral(arguments[0])) {
// let value = atob(arguments[0].value)
// path.replaceWith(types.StringLiteral(value))
//
// }
// }
// }
// })
// 常量还原
function isNodePure(node, scope) {
if (types.isLiteral(node)) {
return true;
}
if (types.isUnaryExpression(node)) {
return isNodePure(node.argument, scope)
}
if (types.isIdentifier(node)) {//处理 var c = String;
if (scope && scope.isPure(node, true)) {
return true;
}
if (typeof this[node.name] != 'undefined') {
return true;
}
return false;
}
if (types.isMemberExpression(node)) {//处理 var d = String.fromCharCode;
let {object, property, computed} = node;
if (computed && !isNodePure(property, scope)) {
return false;
}
if (isNodePure(object, scope)) {
return true;
}
if (types.isIdentifier(object)) {
let name = object.name;
if (typeof this[name] != 'undefined' && name != 'window') {//注意object为window时,可能会还原出错
return true;
}
return false;
}
if (types.isMemberExpression(object)) {
return isNodePure(object, scope);
}
return false;
}
if (types.isBinary(node) && scope) {
return isNodePure(node.left, scope) && isNodePure(node.right, scope);
}
return false;
}
// traverse(ast, {
// VariableDeclaration(path) {
// let {node} = path;
// let {declarations} = node;
// let res = [];
// // console.log(path.parentPath.type)
// if (types.isForStatement(path.parentPath)) return
// if (!declarations || declarations.length == 1) return
// for (let i = 0; i < declarations.length; i++) {
// let declaration = declarations[i];
// res.push(types.VariableDeclaration('var', [declaration]))
// }
// path.replaceWithMultiple(res)
// path.skip()
//
// }
// })
//
//
// const restoreVarDeclarator = {
//
// VariableDeclarator(path) {
// let scope = path.scope;
// let {id, init} = path.node;
// if (!init && (!types.isNumericLiteral(init) || !types.isStringLiteral(init))) return
// if (id.name === 'c' && init.value === 0) return
// if (!types.isIdentifier(id) || !isNodePure(init, scope)) {
// return;
// }
//
// const binding = scope.getBinding(id.name);
// try {
// var {
// constant, referencePaths, constantViolations
// } = binding; //变量的定义一定会有binding.
//
// } catch (e) {
// return;
// }
//
//
// if (constantViolations.length > 1) {
// return;
// }
//
// if (constant || constantViolations[0] == path) {
// for (let referPath of referencePaths) {
// // console.log(init.value)
// // console.log(id.name, referPath.type, generator(referPath.container).code, generator(init).code)
// referPath.replaceWith(init);
// }
// // console.log(path.toString())
// path.remove();//没有被引用,或者替换完成,可直接删除
// }
// },
// }
// traverse(ast, restoreVarDeclarator)
//
// //还原object
// traverse(ast, {
// VariableDeclaration(path) {
// let {scope, node} = path;
// let {declarations} = node;
// if (!declarations) return
//
// if (declarations.length !== 1) return;
//
// let {id, init} = declarations[0]
// if (!types.isObjectExpression(init)) return
// let {properties} = init;
//
// if (properties.length === 0) return;
// for (let i = 0; i < properties.length; i++) {
// let {key, value} = properties[i];
// if (!types.isNumericLiteral(value)) return
// }
//
//
// let binding = scope.getBinding(id.name);
// if (!binding) return
// let {constant, referencePaths, constantViolations} = binding;
// if (!constant) {//新版本的babel库,在循环里面的变量定义,默认非常量
// if (constantViolations.length != 1 || constantViolations[0] != path) //旧版本屏蔽该行即可
// {
// return;
// }
// }
//
// let newMap = new Map();
// for (const property of properties) {
// let {key, value} = property;
// newMap.set(key.name, value);
// }
//
// let canBeRemoved = true;
// for (const referPath of referencePaths) {
// let {parentPath} = referPath;
// if (!parentPath.isMemberExpression()) {
// canBeRemoved = false;
// return;
// }
//
// let AncestorPath = parentPath.parentPath;
//
// if (AncestorPath.isAssignmentExpression({"left": parentPath.node})) {
// canBeRemoved = false;
// return;
// }
// if (AncestorPath.isUpdateExpression() && ['++', '--'].includes(AncestorPath.node.operator)) {
// canBeRemoved = false;
// return;
// }
//
// let curKey = parentPath.node.property.name;
// if (!newMap.has(curKey)) {
// canBeRemoved = false;
// break;
// }
// parentPath.replaceWith(newMap.get(curKey));
// }
// canBeRemoved && path.remove();
// newMap.clear();
// }
// })
function strArrToNodeList(strs) {
let res = [];
for (let j = 0; j < strs.length; j++) {
res.push(types.StringLiteral(strs[j]))
}
return types.ArrayExpression(res)
}
let funcs = {};
traverse(ast, {
FunctionDeclaration(path) {
let {id, body} = path.node;
let scope = path.scope;
if (body.body.length !== 2) return
if (!types.isVariableDeclaration(body.body[0]) || !types.isReturnStatement(body.body[1])) return
let {declarations} = body.body[0];
if (declarations.length !== 1) return;
let declaration = declarations[0];
if (types.isArrayExpression(declaration.init)) {
let elements = declaration.init.elements;
if (elements.length === 0) return
for (let i = 0; i < elements.length; i++) {
if (!types.isStringLiteral(elements[i])) {
return;
}
}
// console.log(generator(path.node).code)
let binding = scope.getBinding(id.name);
if (!binding) return;
let code1, code2, code3;
code1 = generator(path.node).code;
console.log('开始一个新的反混淆', id.name)
// console.log(code1)
// console.log(binding.references)
// if (id.name === 'ar') {
// debugger;
// }
let reference;
for (const referencePath of binding.referencePaths) {
// console.log(generator(referencePath.parentPath.parentPath.parentPath.parentPath.parent).code)
// console.log(referencePath.parentPath.parentPath.parentPath.parentPath.parentPath.parentPath.parentPath.type)
if (types.isCallExpression(referencePath.parentPath.parentPath.parentPath.parentPath.parentPath.parentPath.parent) || types.isUnaryExpression(referencePath.parentPath.parentPath.parentPath.parentPath.parentPath.parentPath.parent)) {
code2 = `!${generator(referencePath.parentPath.parentPath.parentPath.parentPath.parentPath.parentPath.parent).code}`
}
if (types.isBlockStatement(referencePath.parentPath.parentPath.parentPath.parentPath)
&& referencePath.parentPath.parentPath.parentPath.parentPath.parent.body.body.length == 2
) {
// && referencePath.parentPath.parentPath.parentPath.parentPath.parent.body.length ==2
// console.log(referencePath.parentPath.parentPath.parentPath.parentPath.parent.body.body.length)
try {
code3 = generator(referencePath.parentPath.parentPath.parentPath.parentPath.parent).code
reference = referencePath;
} catch (e) {
continue
}
}
}
if (code1 && code2 && code3) {
let res = eval((code1 + ';' + code2 + ';' + code3).replaceAll(`function ${id.name}`, `let ${id.name} = function`) + `;${id.name}()`)
let result = strArrToNodeList(res)
reference.parentPath.replaceWith(result);
console.log('result', generator(result).code)
let tName = reference.parentPath.parentPath.parentPath.parentPath.parent.id.name;
let binding2 = reference.scope.getBinding(tName)
let code = generator(reference.parentPath.parentPath.parentPath.parentPath.parent).code;
let nn = getUnusedName();
eval(`function ${nn}(a, b) {
return ${code}(a, b)
}`)
console.log()
for (const referPath2 of binding2.referencePaths) {
if (!types.isCallExpression(referPath2.parent)) continue;
let refer = referPath2.parent;
console.log(generator(refer).code)
let {callee, arguments} = refer;
if (!arguments) continue
if (arguments.length !== 2) continue
let ifExec = true;
for (let j = 0; j < arguments.length; j++) {
if (!types.isNumericLiteral(arguments[0])) {
ifExec = false;
}
}
if (ifExec) {
// 直接执行
} else {
// 再次引用
if (types.isFunctionDeclaration(referPath2.parentPath.parentPath.parentPath.parent)) {
let dName = referPath2.parentPath.parentPath.parentPath.parent.id.name;
let binding3 = referPath2.scope.getBinding(dName)
funcs[dName] = nn;
if (!binding3) continue;
console.log(dName)
for (const referPath3 of binding3.referencePaths) {
let {callee, arguments} = referPath3.parent;
if (!arguments) continue;
if (arguments.length !== 2) continue;
let ifExec = true;
for (let j = 0; j < arguments.length; j++) {
if (!types.isNumericLiteral(arguments[0])) {
ifExec = false;
}
}
if (!ifExec) {
let dName2 = referPath3.parentPath.parentPath.parentPath.parent.id.name;
let binding4 = referPath2.scope.getBinding(dName2)
console.log(dName2)
for (const referPath4 of binding4.referencePaths) {
let {callee, arguments} = referPath4.parent;
if (!arguments) continue;
if (arguments.length !== 2) continue;
let ifExec = true;
for (let j = 0; j < arguments.length; j++) {
if (!types.isNumericLiteral(arguments[0])) {
ifExec = false;
}
}
if (ifExec) {
} else {
try {
let res = eval(`${nn}(${arguments[0].value}, ${arguments[1].value})`)
console.log(tName, arguments[0].value, arguments[1].value, '=>', res)
} catch (e) {
}
}
}
} else {
try {
let res = eval(`${nn}(${arguments[0].value}, ${arguments[1].value})`)
console.log(tName, arguments[0].value, arguments[1].value, '=>', res)
} catch (e) {
}
}
}
}
}
console.log(referPath2.parentPath.type)
}
path.skip()
}
// let {id} = parentPath.parentPath.node
// funcs[id.name] = {
// array: generator(path.node).code
// }
}
}
})
console.log(funcs)
// traverse(ast, {
// FunctionDeclaration(path) {
// let {id, body} = path.node;
// if (body.body.length !== 2) return
// if (!types.isVariableDeclaration(body.body[0]) || !types.isReturnStatement(body.body[1])) return
// let {declarations} = body.body[0];
// if (declarations.length !== 1) return;
// let declaration = declarations[0];
// let {node, scope} = path;
// if (!types.isCallExpression(declaration.init)) {
// return
// }
// if (Object.keys(funcs).includes(declaration.init.callee.name)) {
// funcs[declaration.init.callee.name]['call'] = generator(node).code
// funcs[declaration.init.callee.name]['name'] = id.name
// }
// }
// })
// traverse(ast, {
// UnaryExpression(path) {
// let {id, body} = path.node;
// let {node, scope} = path;
// let {operator, argument} = node;
// if (operator !== '!') return
// let {callee, arguments} = argument;
// if (!arguments) return
// if (arguments.length !== 1) return
// let arg = arguments[0]
// if (!types.isIdentifier(arg)) return
// if (Object.keys(funcs).includes(arg.name)) {
// funcs[arg.name]['rever'] = generator(node).code
// }
// }
// })
// console.log(funcs)
var newMap = {}
let keys = Object.keys(funcs);
let keys2 = [];
for (let i = 0; i < keys.length; i++) {
newMap[funcs[keys[i]].name] = funcs[keys[i]]
keys2.push(funcs[keys[i]].name)
}
var map2 = {};
// 开始还原
let funcTemp = {}
// for (let j = 0; j < 3; j++) {
// traverse(ast, {
// VariableDeclaration(path) {
// let {declarations} = path.node;
// let scope = path.scope;
// if (declarations.length !== 1) return;
// let declaration = declarations[0]
// let {id, init} = declaration;
// if (!init) return
// if (!types.isIdentifier(init)) return;
// if (init.name === '$d') {
// debugger;
// }
//
// if (keys2.includes(init.name)) {
// let t = newMap[init.name];
// let jsCode = t.array + ';' + t.rever + ';' + t.call;
// // console.log(jsCode)
// jsCode = `funcTemp.${t.name} = function(t,e){
// ${jsCode}
// return ${t.name}(t,e)
// }`
// eval(jsCode)
// // console.log('eval', t.name)
// keys2.push(id.name)
// newMap[id.name] = t;
// map2[id.name] = t.name
// funcTemp[id.name] = funcTemp[t.name]
// map2[init.name] = t.name
// let binding = scope.getBinding(id.name);
//
// if (!binding) return;
// console.log(id.name, init.name, keys2.includes(init.name), binding.references)
//
//
// if (id.name === 'zo') {
// // console.log(id.name, init.name, keys2.includes(init.name), binding.references)
// debugger
// }
//
// for (const referencePath of binding.referencePaths) {
// // console.log(referencePath.parentPath.type);
// if (types.isCallExpression(referencePath.parent)) {
// let {callee, arguments} = referencePath.parent;
// if (id.name === 'zo') {
//
// // console.log(generator(referencePath.parentPath.node).code)
// }
// if (arguments.length === 1 && types.isNumericLiteral(arguments[0])) {
// let res = funcTemp[t.name](arguments[0].value)
// if (id.name === 'zo') {
//
// // console.log(arguments[0].value, res)
// }
// referencePath.parentPath.replaceWith(types.StringLiteral(res))
// }
// }
// }
//
// }
// }
// })
// }
traverse(ast, {
CallExpression(path) {
let {callee, arguments} = path.node;
if (funcs[callee.name]) {
if (arguments.length === 2 && types.isNumericLiteral(arguments[0]) && types.isNumericLiteral(arguments[1])) {
// let res = funcs[callee.name](arguments[0].value, arguments[1].value)
let res = eval(`${funcs[callee.name]}(${arguments[0].value}, ${arguments[1].value})`)
console.log(callee.name, arguments[0].value, res)
if (!res) return
// if (id.name === 'zo') {
// console.log(arguments[0].value, res)
// }
path.replaceWith(types.StringLiteral(res))
}
}
}
})
console.log(keys2 + '')
function t() {
return Date.now();
}
var i = function () {
try {
if (atob && "test" === atob("dGVzdA==")) return atob;
} catch (t) {
}
function t(t) {
this.message = t;
}
t.prototype = new Error(), t.prototype.name = "InvalidCharacterError";
return function (e) {
var n = String(e).replace(/[=]+$/, "");
if (n.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded.");
for (var r, i, a = 0, o = 0, c = ""; i = n.charAt(o++); ~i && (r = a % 4 ? 64 * r + i : i, a++ % 4) ? c += String.fromCharCode(255 & r >> (-2 * a & 6)) : 0) i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);
return c;
};
}();
function o(n) {
var r = t();
for (var c = i(n), u = "", l = 0; l < c.length; ++l) {
var s = "XsS5yUA".charCodeAt(l % 7);
u += String.fromCharCode(s ^ c.charCodeAt(l));
}
return u;
}
// traverse(ast, {
// VariableDeclaration(path) {
// let {declarations} = path.node;
// let scope = path.scope;
// if (declarations.length !== 1) return;
// let declaration = declarations[0]
// let {id, init} = declaration;
// if (!init) return
// if (!types.isIdentifier(init)) return;
// if (init.name === 'o') {
// let binding = scope.getBinding(id.name);
// if (id.name === 'xs') {
// debugger
// }
// if (!binding) return;
// // console.log(id.name, init.name, binding.references)
//
// for (const referencePath of binding.referencePaths) {
// // console.log(referencePath);
// // console.log(generator(referencePath.parent).code)
// // console.log(referencePath.parentPath.type)
//
// if (types.isCallExpression(referencePath.parent)) {
// let {callee, arguments} = referencePath.parent;
//
// if (arguments.length === 1 && types.isStringLiteral(arguments[0])) {
// let res = o(arguments[0].value)
// // if (id.name === 'xs') {
// //
// // console.log(generator(referencePath.parent).code, res)
// // }
// referencePath.parentPath.replaceWith(types.StringLiteral(res))
// }
// } else {
//
// }
// }
// }
//
// }
// })
//end
console.timeEnd("处理完毕,耗时");
code = generator(ast, opts = {jsescOption: {"minimal": true}}).code;
fs.writeFile(decodeFile, code, (err) => {
});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
l000l0 // vid
000ll0 // 加密用
000ll0 // 加密用
0l0000 // cs
0ll0ll // PX12118
0llll00l// PX11431
......@@ -233,7 +233,8 @@ l000l0 // vid
"PX12564": null,
"PX12565": -1
}
}, {
},
{
"t": "PX11547",
"d": {
"PX12492": "c505c10e26a1b7a7741437db9f82916b",
......
......@@ -5,23 +5,23 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="px-captcha">
<title>Access to this page has been denied</title>
</head>
<body>
<script>
window._pxVid = '';
window._pxUuid = 'b6711811-6c58-1031-a3d1-6924a8f5cc33';
window._pxVid = '9a5cbb54-44c8-11ee-a95b-8d293efb2b16';
window._pxUuid = 'c3e2ba21-6c58-1031-9f5f-6b3e11e921ab';
window._pxAppId = 'PXVb73hTEg';
window._pxHostUrl = 'https://collector-PXVb73hTEg.perimeterx.net';
window._pxCustomLogo = '';
window._pxJsClientSrc = '//client.perimeterx.net/PXVb73hTEg/main.min.js';
window._pxFirstPartyEnabled = 'false';
var script = document.createElement('script');
script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=b6711811-6c58-1031-a3d1-6924a8f5cc33&v=&m=0';
script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=&u=c3e2ba21-6c58-1031-9f5f-6b3e11e921ab&v=9a5cbb54-44c8-11ee-a95b-8d293efb2b16&m=0';
document.head.appendChild(script);
script.onerror = function () {
script = document.createElement('script');
script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=b6711811-6c58-1031-a3d1-6924a8f5cc33&v=&m=0';
script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=&u=c3e2ba21-6c58-1031-9f5f-6b3e11e921ab&v=9a5cbb54-44c8-11ee-a95b-8d293efb2b16&m=0';
script.onerror = window._pxDisplayErrorMessage;
document.head.appendChild(script);
};
......
const Ev = (t, e, n) => {
for (var r = ie(encode(n), 10), o = [], a = -1, i = 0; i < t.length; i++) {
var l = Math.floor(i / r.length + 1),
c = i >= r.length ? i % r.length : i,
u = r.charCodeAt(c) * r.charCodeAt(l)
u > a && (a = u)
}
for (var f = 0; t.length > f; f++) {
var s = Math.floor(f / r.length) + 1,
d = f % r.length,
p = r.charCodeAt(d) * r.charCodeAt(s)
for (p >= e && (p = wv(p, 0, a, 0, e - 1)); -1 !== o.indexOf(p); ) p += 1
o.push(p)
}
return o.sort(function (t, e) {
return t - e
})
for (var r = ie(encode(n), 10), o = [], a = -1, i = 0; i < t.length; i++) {
var l = Math.floor(i / r.length + 1),
c = i >= r.length ? i % r.length : i,
u = r.charCodeAt(c) * r.charCodeAt(l)
u > a && (a = u)
}
for (var f = 0; t.length > f; f++) {
var s = Math.floor(f / r.length) + 1,
d = f % r.length,
p = r.charCodeAt(d) * r.charCodeAt(s)
for (p >= e && (p = wv(p, 0, a, 0, e - 1)); -1 !== o.indexOf(p);) p += 1
o.push(p)
}
return o.sort(function (t, e) {
return t - e
})
}
const encode = (t) => {
return Buffer.from(t, 'binary').toString('base64');
return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g, function (t, e) {
return String.fromCharCode("0x" + e);
}))
}
const ie = (t, e) => {
for (var n = '', r = 0; r < t.length; r++)
n += String.fromCharCode(e ^ t.charCodeAt(r))
for (var n = '', r = 0; r < t.length; r++)
n += String.fromCharCode(e ^ t.charCodeAt(r))
return n
return n
}
const wv = (t, e, n, r, o) => {
return Math.floor(((t - e) / (n - e)) * (o - r) + r)
return Math.floor(((t - e) / (n - e)) * (o - r) + r)
}
const Fa = (t, e, n) => {
for (var r = '', o = 0, a = t.split(''), i = 0; i < t.length; i++)
(r += e.substring(o, n[i] - i - 1) + a[i]), (o = n[i] - i - 1)
for (var r = '', o = 0, a = t.split(''), i = 0; i < t.length; i++)
(r += e.substring(o, n[i] - i - 1) + a[i]), (o = n[i] - i - 1)
return (r += e.substring(o))
return (r += e.substring(o))
}
function encodePayload(payload, uuid, sts) {
var sts = sts.length === 0 ? '1604064986000' : sts
const BasePayload = encode(ie(payload, 50))
const fv = ie(encode(sts), 10)
return Fa(fv, BasePayload, Ev(fv, BasePayload.length, uuid))
var sts = sts.length === 0 ? '1604064986000' : sts
const BasePayload = encode(ie(payload, 50))
const fv = ie(encode(sts), 10)
return Fa(fv, BasePayload, Ev(fv, BasePayload.length, uuid))
}
/**
......@@ -53,5 +55,80 @@ function encodePayload(payload, uuid, sts) {
*/
module.exports = {
encodePayload: encodePayload
}
\ No newline at end of file
encodePayload: encodePayload
}
function l(t) {
return l = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
return typeof t;
} : function (t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
}, l(t);
}
var tt = {
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
"\v": "\\v",
'"': '\\"',
"\\": "\\\\"
};
function $C_kQN(t) {
return tt[t] || "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4);
}
function $C_qSS(t) {
return /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g.lastIndex = 0, '"' + (/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g.test(t) ? t.replace(/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, $C_kQN) : t) + '"';
}
function $C_dLV(t) {
var e;
switch (l(t)) {
case "undefined":
return "null";
case "boolean":
return String(t);
case "number":
var n = String(t);
return "NaN" === n || "Infinity" === n ? "null" : n;
case "string":
return $C_qSS(t);
}
if (null === t || t instanceof RegExp) return "null";
if (t instanceof Date) return ['"', t.getFullYear(), "-", t.getMonth() + 1, "-", t.getDate(), "T", t.getHours(), ":", t.getMinutes(), ":", t.getSeconds(), ".", t.getMilliseconds(), '"'].join("");
if (t instanceof Array) {
var r;
for (e = ["["], r = 0; r < t.length; r++) e.push($C_dLV(t[r]) || '"undefined"', ",");
return e[e.length > 1 ? e.length - 1 : e.length] = "]", e.join("");
}
for (var i in e = ["{"], t) t.hasOwnProperty(i) && void 0 !== t[i] && e.push($C_qSS(i), ":", $C_dLV(t[i]) || '"undefined"', ",");
return e[e.length > 1 ? e.length - 1 : e.length] = "}", e.join("");
}
let payload = `[{"t":"PX11590","d":{"PX11431":1693056946165,"PX12573":"83eb107","PX12588":"webkit","PX12551":"https:","PX12553":"Asia/Shanghai","PX12567":"w3c","PX12576":"screen","PX12555":{"plugext":{"0":{"f":"internal-pdf-viewer","n":"PDF Viewer"},"1":{"f":"internal-pdf-viewer","n":"Chrome PDF Viewer"},"2":{"f":"internal-pdf-viewer","n":"Chromium PDF Viewer"},"3":{"f":"internal-pdf-viewer","n":"Microsoft Edge PDF Viewer"},"4":{"f":"internal-pdf-viewer","n":"WebKit built-in PDF"}},"plugins_len":5},"PX12583":{"smd":{"ok":true,"ex":false}},"PX12578":{},"PX12594":false,"PX12566":false,"PX12571":"36813bc5","PX12579":{"support":true,"status":{"effectiveType":"4g","rtt":100,"downlink":4.05,"saveData":false}},"PX12581":"default","PX12582":3,"PX12587":false,"PX11508":"49e5084e","PX11452":"7c5f9724","PX12218":"65d826e0","PX12481":"a9269e00","PX11780":"50a5ec55","PX12330":"109|66|66|70|80","PX11705":1128,"PX11938":true,"PX11602":true,"PX12021":"false","PX12421":"false","PX12124":1,"PX11609":1,"PX12291":"","PX11881":["loadTimes","csi","app"],"PX11843":2560,"PX11781":1080,"PX12121":2560,"PX12128":970,"PX12387":"2560X1080","PX12003":24,"PX11380":24,"PX11494":1169,"PX12411":859,"PX12443":0,"PX12447":0,"PX11533":true,"PX12079":false,"PX12597":1,"PX11539":"3257c57a","PX11528":"","PX12271":"10207b2f","PX11849":"10207b2f","PX12464":"90e65465","PX11356":true,"PX12426":true,"PX11791":true,"PX11517":true,"PX12520":true,"PX12524":"4YC14YCd4YCd4YCV4YCe4YCX4YGS5J256aus7r266YaI5oCR7r27","PX12527":"3207084bd110f1ac964863e23aa78e04","PX12260":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX12249":false,"PX11897":"90e65465","PX11303":false,"PX11515":false,"PX12133":false,"PX12340":false,"PX11738":false,"PX11723":false,"PX11389":false,"PX11839":false,"PX11460":false,"PX12102":false,"PX11378":false,"PX12317":false,"PX12278":true,"PX11694":false,"PX12294":false,"PX12514":true,"PX12515":"TypeError: Cannot read properties of undefined (reading 'width')","PX12516":"webkit","PX12517":33,"PX12518":false,"PX12545":false,"PX12593":false,"PX12595":"AudioData.SVGAnimatedAngle.SVGMetadataElement","PX12069":["PDF Viewer","Chrome PDF Viewer","Chromium PDF Viewer","Microsoft Edge PDF Viewer","WebKit built-in PDF"],"PX12286":5,"PX11576":true,"PX12318":true,"PX11384":true,"PX11886":true,"PX11583":"en-US","PX12458":"MacIntel","PX11681":["en-US","en","zh-CN","ru"],"PX11754":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX12037":true,"PX11390":-480,"PX11621":8,"PX11657":4,"PX12081":"Gecko","PX11908":"20030107","PX12314":"5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX11829":true,"PX11464":true,"PX12054":2,"PX11821":"Netscape","PX11479":"Mozilla","PX11674":true,"PX12241":100,"PX11372":false,"PX11683":4.05,"PX11561":"4g","PX11877":true,"PX12100":true,"PX12506":"x86","PX12507":"64","PX12508":[{"brand":"Not.A/Brand","version":"8"},{"brand":"Chromium","version":"114"},{"brand":"Google Chrome","version":"114"}],"PX12509":false,"PX12510":"","PX12511":"macOS","PX12512":"13.2.0","PX12513":"114.0.5735.198","PX12548":true,"PX12549":true,"PX11529":30489186,"PX11555":4294705152,"PX11833":38672282,"PX11840":"Sat Aug 26 2023 21:35:47 GMT+0800 (中国标准时间)","PX11526":false,"PX11684":false,"PX11812":false,"PX12335":true,"PX12080":0,"PX11678":false,"PX11349":"visible","PX12397":false,"PX11387":0,"PX12150":2560,"PX12304":true,"PX11651":970,"PX11867":"missing","PX12254":true,"PX11540":true,"PX11548":false,"PX11446":true,"PX12550":1,"PX12431":0,"PX11991":4,"PX11837":15,"PX11632":0,"PX11409":9,"PX12207":0,"PX11538":2,"PX11984":"TypeError: Cannot read properties of null (reading '0')\\n at $C_mMY (https://client.px-cloud.net/PXVb73hTEg/main.min.js:909:13)\\n at $C_iLQ (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2196:36)\\n at $C_qCQ (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2175:23)\\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2173:13","PX11645":"https://www.flyfrontier.com/","PX11597":[],"PX12023":"","PX11337":false,"PX11701":"18102791304269153940","6?6750>647351>624>37":"7>7641?756240?735?26","PX12454":8521,"PX12544":true,"PX12589":"succeeded","PX11524":true,"PX11804":"34d69b4bc1f919d47eed77bec009e2b3","PX12118":"cjkvvch7b0gnlpq41mug","PX11746":"836e16c47431c942e975cc938fbdb047","PX11371":"be5ca4effdff6b09a2e87e9ba4f548d8","PX12501":"3180497098e8757182535322d779dc2d","PX12169":2,"PX11902":1,"PX11560":42963,"PX11332":1693056946098,"PX12248":3600,"PX11385":1693056921583,"PX12280":1693056947605,"PX11496":"677580e0-4415-11ee-b626-e551c5b21afd","PX12564":null,"PX12565":-1,"PX11379":false}}]`
let uuid = "677580e0-4415-11ee-b626-e551c5b21afd"
console.log(encodePayload(payload, uuid, '1693056946165'))
function I(t) {
var e = void 0,
n = [];
for (n[(t.length >> 2) - 1] = void 0, e = 0; e < n.length; e += 1) n[e] = 0;
for (e = 0; e < 8 * t.length; e += 8) n[e >> 5] |= (255 & t.charCodeAt(e / 8)) << e % 32;
return n;
}
function N(t, e) {
var n = void 0
, r = I(t)
, o = []
, i = [];
for (o[15] = i[15] = void 0,
r.length > 16 && (r = F(r, 8 * t.length)),
n = 0; n < 16; n += 1)
o[n] = 909522486 ^ r[n],
i[n] = 1549556828 ^ r[n];
var l = F(o.concat(I(e)), 512 + 8 * e.length);
return _(F(i.concat(l), 640))
}
......@@ -99,4 +99,6 @@ module.exports = {
createPX11804:createPX11804,
createPX12280: createPX12280,
createPX11840: createPX11840,
}
\ No newline at end of file
}
// "c8d587ac9ed43c2059c3987e519414a0"
console.log(createPX11804('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'bbbef4d0-43f0-11ee-943d-35416425a3b0'))
\ No newline at end of file
......@@ -9,8 +9,11 @@ import requests
import tls_client
from loguru import logger
with open('test.js', 'r', encoding='utf-8') as f:
with open('js/encodepayload.js', 'r', encoding='utf-8') as f:
jsCode = f.read()
ctx = execjs.compile(jsCode)
ctxPC = execjs.compile(open('pc.js').read())
ctxStep2 = execjs.compile(open('step2.js').read())
def get_timestamp():
......@@ -26,8 +29,8 @@ class PxBypass():
session = tls_client.Session(client_identifier='chrome_112')
# session = requests.Session()
session.proxies = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890',
'http': 'http://127.0.0.1:8890',
'https': 'http://127.0.0.1:8890',
}
# session.proxies = {
......@@ -43,6 +46,7 @@ class PxBypass():
self._init()
self._step_1()
self._step_2()
self.__token()
def _init(self):
......@@ -52,22 +56,16 @@ class PxBypass():
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache",
"pragma": "no-cache",
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
res = self.session.get(self.target_url, headers=headers)
res = self.session.get(self.target_url, headers=headers, allow_redirects=True)
self.log.info(f"初始化请求 res {res.status_code}")
self.params = {}
for k, v in self.session.cookies.items():
self.params[k] = v
self.log.info(f"init cookie {self.params}")
with open('index.html','w') as f:
f.write(res.text)
def __uuid(self):
r = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11",
......@@ -126,17 +124,17 @@ class PxBypass():
t1 = int(time.time() * 1000)
t2 = t1 + random.randint(3, 12)
_uuid = self.__uuid()
self.uuid = _uuid
data = [{"t": "PX12095",
"d": {"PX11645": "https://www.flyfrontier.com/", "PX12207": 0, "PX12458": "MacIntel", "PX11902": 0,
"PX11560": random.randint(8549, 8549 * 3), "PX12248": 3600, "PX11385": t1, "PX12280": t2,
"PX11496": _uuid, "PX12564": None, "PX12565": -1,
"PX11379": False}}]
data_str = json.dumps(data, separators=(',', ':'))
self.log.info(f'data_str {data_str}')
payload = base64.b64encode(self.encrypt(data_str, 50)).decode()
ctx = execjs.compile(jsCode)
payload = ctx.call('enc', payload, _uuid)
payload = ctx.call('encodePayload', data_str, _uuid, '')
self.log.info(f'payload {payload}')
tag = "v8.6.4"
ft = "314"
......@@ -171,16 +169,18 @@ class PxBypass():
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector1 {response.text}')
resp = response.json()
m = {}
if 'ob' in resp:
cookies = self.encrypt(base64.b64decode(resp['ob'].encode()), 96).decode()
print(cookies.split('~~~~'))
for i in cookies.split('~~~~'):
tmp = i.split('|')
m[tmp[0]] = tmp[1]
if 'pxde' in i:
self.session.cookies.update({
'_pxde': tmp[3]
......@@ -206,7 +206,9 @@ class PxBypass():
self.session.cookies.update({
tmp[0]: tmp[1]
})
self.log.info(self.session.cookies.keys())
self.log.info(f'cookies1 {self.session.cookies.keys()}')
self.m = m
self.log.info(self.m)
def encrypt(self, data, param):
n = bytearray()
......@@ -220,8 +222,8 @@ class PxBypass():
def __gen_pc(self, data_str, param):
# self.log.info(f'genpc {data_str} {param}')
ctx = execjs.compile(jsCode)
return ctx.call('Jt', param, data_str)
# ctx = execjs.compile(jsCode)
return ctxPC.call('genPc', param, data_str)
def __token(self):
......@@ -241,9 +243,95 @@ class PxBypass():
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}, allow_redirects=True)
print(response.status_code)
with open('index.html', 'w') as f:
f.write(response.text)
def _step_2(self):
t1 = int(time.time() * 1000)
data_str = ctxStep2.call('genPayload2', self.m, self.uuid)
self.log.info(f'data_str2 {data_str}')
payload = ctx.call('encodePayload', data_str, self.uuid, '')
self.log.info(f'payload {payload}')
tag = "v8.6.4"
ft = "314"
pc = self.__gen_pc(data_str, f'{self.uuid}:{tag}:{ft}')
body = {
"payload": payload,
"appId": "PXVb73hTEg",
"tag": tag,
"uuid": self.uuid,
"ft": ft,
"seq": "1",
"en": "NTA",
"cs": self.m['0l0000'],
"pc": pc,
"sid": self.m['000ll0'],
"vid": self.m['l000l0'],
"cts": self.m['0lll0l00'],
"rsc": "1"
}
url = "https://collector-PXVb73hTEg.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-PXVb73hTEg.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"origin": "https://www.flyfrontier.com",
"pragma": "no-cache",
"referer": "https://www.flyfrontier.com/",
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector2 {response.text}')
resp = response.json()
m = {}
if 'ob' in resp:
cookies = self.encrypt(base64.b64decode(resp['ob'].encode()), 96).decode()
print(cookies.split('~~~~'))
for i in cookies.split('~~~~'):
tmp = i.split('|')
m[tmp[0]] = tmp[1]
if 'pxde' in i:
self.session.cookies.update({
'_pxde': tmp[3]
})
elif '_px2' in i:
self.session.cookies.update({
'_px2': tmp[3]
})
elif '31536000' in i:
self.session.cookies.update({
'_pxvid': tmp[1]
})
else:
for i in resp['do']:
tmp = i.split('|')
# print(len(tmp), tmp)
if len(tmp) == 6 and tmp[1] in ['_px', '_px3', '_pxde']:
self.session.cookies.update({
tmp[1]: tmp[3]
})
elif len(tmp) in [3, 4] and tmp[1] in ['cts', 'vid']:
self.session.cookies.update({
tmp[0]: tmp[1]
})
self.log.info(f'cookies2 {self.session.cookies.keys()}')
self.m = m
self.log.info(self.m)
if __name__ == '__main__':
......
......@@ -9,14 +9,18 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.19.0",
"md5": "^2.3.0"
},
"devDependencies": {
"@babel/core": "^7.22.11",
"@babel/types": "^7.22.11"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz",
"integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
......@@ -29,6 +33,7 @@
"version": "7.22.10",
"resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.10.tgz",
"integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==",
"dev": true,
"dependencies": {
"@babel/highlight": "^7.22.10",
"chalk": "^2.4.2"
......@@ -41,6 +46,7 @@
"version": "7.22.9",
"resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.22.9.tgz",
"integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -49,6 +55,7 @@
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz",
"integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.10",
......@@ -78,6 +85,7 @@
"version": "7.22.10",
"resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.22.10.tgz",
"integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.10",
"@jridgewell/gen-mapping": "^0.3.2",
......@@ -92,6 +100,7 @@
"version": "7.22.10",
"resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz",
"integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.22.9",
"@babel/helper-validator-option": "^7.22.5",
......@@ -107,6 +116,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
"integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -115,6 +125,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
"integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
"dev": true,
"dependencies": {
"@babel/template": "^7.22.5",
"@babel/types": "^7.22.5"
......@@ -127,6 +138,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
"integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.5"
},
......@@ -138,6 +150,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
"integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.5"
},
......@@ -149,6 +162,7 @@
"version": "7.22.9",
"resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
"integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-module-imports": "^7.22.5",
......@@ -167,6 +181,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
"integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.5"
},
......@@ -178,6 +193,7 @@
"version": "7.22.6",
"resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
"integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.5"
},
......@@ -189,6 +205,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -197,6 +214,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
"integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -205,6 +223,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
"integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -213,6 +232,7 @@
"version": "7.22.11",
"resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.22.11.tgz",
"integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==",
"dev": true,
"dependencies": {
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.11",
......@@ -226,6 +246,7 @@
"version": "7.22.10",
"resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.10.tgz",
"integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.5",
"chalk": "^2.4.2",
......@@ -239,6 +260,7 @@
"version": "7.22.11",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.11.tgz",
"integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
......@@ -250,6 +272,7 @@
"version": "7.22.5",
"resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.22.5.tgz",
"integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.22.5",
"@babel/parser": "^7.22.5",
......@@ -263,6 +286,7 @@
"version": "7.22.11",
"resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.22.11.tgz",
"integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.22.10",
"@babel/generator": "^7.22.10",
......@@ -281,8 +305,9 @@
},
"node_modules/@babel/types": {
"version": "7.22.11",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.22.11.tgz",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz",
"integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.5",
......@@ -296,6 +321,7 @@
"version": "0.3.3",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
......@@ -309,6 +335,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
......@@ -317,6 +344,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
......@@ -324,12 +352,14 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.19",
"resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
"integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
......@@ -339,6 +369,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
......@@ -350,6 +381,7 @@
"version": "4.21.10",
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.10.tgz",
"integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==",
"dev": true,
"dependencies": {
"caniuse-lite": "^1.0.30001517",
"electron-to-chromium": "^1.4.477",
......@@ -366,12 +398,14 @@
"node_modules/caniuse-lite": {
"version": "1.0.30001522",
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz",
"integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg=="
"integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==",
"dev": true
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
......@@ -393,6 +427,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
......@@ -400,12 +435,14 @@
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"node_modules/convert-source-map": {
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true
},
"node_modules/crypt": {
"version": "0.0.2",
......@@ -419,6 +456,7 @@
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
},
......@@ -434,12 +472,14 @@
"node_modules/electron-to-chromium": {
"version": "1.4.500",
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz",
"integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A=="
"integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==",
"dev": true
},
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"dev": true,
"engines": {
"node": ">=6"
}
......@@ -448,6 +488,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
......@@ -456,6 +497,7 @@
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
......@@ -464,6 +506,7 @@
"version": "11.12.0",
"resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"engines": {
"node": ">=4"
}
......@@ -472,6 +515,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
"node": ">=4"
}
......@@ -484,12 +528,14 @@
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
......@@ -501,6 +547,7 @@
"version": "2.2.3",
"resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
},
......@@ -512,6 +559,7 @@
"version": "5.1.1",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"dependencies": {
"yallist": "^3.0.2"
}
......@@ -529,22 +577,26 @@
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/node-releases": {
"version": "2.0.13",
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz",
"integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
"integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
"dev": true
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
......@@ -553,6 +605,7 @@
"version": "5.5.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
......@@ -564,6 +617,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
"engines": {
"node": ">=4"
}
......@@ -572,6 +626,7 @@
"version": "1.0.11",
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
"dev": true,
"dependencies": {
"escalade": "^3.1.1",
"picocolors": "^1.0.0"
......@@ -586,7 +641,8 @@
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
}
}
}
......@@ -9,7 +9,10 @@
"author": "",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.19.0",
"md5": "^2.3.0"
},
"devDependencies": {
"@babel/core": "^7.22.11",
"@babel/types": "^7.22.11"
}
}
function $C_vMN(t) {
var e;
var n = "";
for (e = 0; e < 32 * t.length; e += 8) n += String.fromCharCode(t[e >> 5] >>> e % 32 & 255);
return n;
}
function $C_qRT(t, e, n, r, i, a, o) {
return $C_sXR(n ^ (e | ~r), t, e, i, a, o);
}
function $C_gFK(t) {
var e;
var n;
var i = "";
for (n = 0; n < t.length; n += 1) e = t.charCodeAt(n), i += "0123456789abcdef".charAt(e >>> 4 & 15) + "0123456789abcdef".charAt(15 & e);
return i;
}
function $C_vZD(t, e, n) {
return e ? n ? $C_jAI(e, t) : $C_gFK($C_jAI(e, t)) : n ? $C_tEZ(t) : function (t) {
return $C_gFK($C_tEZ(t));
}(t);
}
function $C_zUU(t, e, n, r, i, a, o) {
return $C_sXR(e & n | ~e & r, t, e, i, a, o);
}
function $C_qXI(t, e, n, r, i, a, o) {
return $C_sXR(e ^ n ^ r, t, e, i, a, o);
}
function $C_wOY(t) {
var e;
var n = [];
for (n[(t.length >> 2) - 1] = void 0, e = 0; e < n.length; e += 1) n[e] = 0;
for (e = 0; e < 8 * t.length; e += 8) n[e >> 5] |= (255 & t.charCodeAt(e / 8)) << e % 32;
return n;
}
function $C_jYJ(t, e, n, r, i, a, o) {
return $C_sXR(e & r | n & ~r, t, e, i, a, o);
}
function $C_tEZ(t) {
return function (t) {
return $C_vMN($C_jYB($C_wOY(t), 8 * t.length));
}($C_gOV(t));
}
function $C_gOV(t) {
return unescape(encodeURIComponent(t));
}
function $C_gOL(t, e) {
return (t >> 16) + (e >> 16) + ((65535 & t) + (65535 & e) >> 16) << 16 | 65535 & (65535 & t) + (65535 & e);
}
function $C_jAI(t, e) {
return function (t, e) {
// t = '123'
var n;
var r = $C_wOY(t);
// 转 字节
var i = [];
var a = [];
for (i[15] = a[15] = void 0, r.length > 16 && (r = $C_jYB(r, 8 * t.length)), n = 0; n < 16; n += 1) i[n] = 909522486 ^ r[n], a[n] = 1549556828 ^ r[n];
var o = $C_jYB(i.concat($C_wOY(e)), 512 + 8 * e.length);
return $C_vMN($C_jYB(a.concat(o), 640));
}($C_gOV(t), $C_gOV(e));
}
function $C_jYB(t, e) {
t[e >> 5] |= 128 << e % 32, t[14 + (e + 64 >>> 9 << 4)] = e;
var n;
var r;
var i;
var a;
var o;
var c = 1732584193;
var u = -271733879;
var l = -1732584194;
var s = 271733878;
for (n = 0; n < t.length; n += 16) r = c, i = u, a = l, o = s, c = $C_zUU(c, u, l, s, t[n], 7, -680876936), s = $C_zUU(s, c, u, l, t[n + 1], 12, -389564586), l = $C_zUU(l, s, c, u, t[n + 2], 17, 606105819), u = $C_zUU(u, l, s, c, t[n + 3], 22, -1044525330), c = $C_zUU(c, u, l, s, t[n + 4], 7, -176418897), s = $C_zUU(s, c, u, l, t[n + 5], 12, 1200080426), l = $C_zUU(l, s, c, u, t[n + 6], 17, -1473231341), u = $C_zUU(u, l, s, c, t[n + 7], 22, -45705983), c = $C_zUU(c, u, l, s, t[n + 8], 7, 1770035416), s = $C_zUU(s, c, u, l, t[n + 9], 12, -1958414417), l = $C_zUU(l, s, c, u, t[n + 10], 17, -42063), u = $C_zUU(u, l, s, c, t[n + 11], 22, -1990404162), c = $C_zUU(c, u, l, s, t[n + 12], 7, 1804603682), s = $C_zUU(s, c, u, l, t[n + 13], 12, -40341101), l = $C_zUU(l, s, c, u, t[n + 14], 17, -1502002290), c = $C_jYJ(c, u = $C_zUU(u, l, s, c, t[n + 15], 22, 1236535329), l, s, t[n + 1], 5, -165796510), s = $C_jYJ(s, c, u, l, t[n + 6], 9, -1069501632), l = $C_jYJ(l, s, c, u, t[n + 11], 14, 643717713), u = $C_jYJ(u, l, s, c, t[n], 20, -373897302), c = $C_jYJ(c, u, l, s, t[n + 5], 5, -701558691), s = $C_jYJ(s, c, u, l, t[n + 10], 9, 38016083), l = $C_jYJ(l, s, c, u, t[n + 15], 14, -660478335), u = $C_jYJ(u, l, s, c, t[n + 4], 20, -405537848), c = $C_jYJ(c, u, l, s, t[n + 9], 5, 568446438), s = $C_jYJ(s, c, u, l, t[n + 14], 9, -1019803690), l = $C_jYJ(l, s, c, u, t[n + 3], 14, -187363961), u = $C_jYJ(u, l, s, c, t[n + 8], 20, 1163531501), c = $C_jYJ(c, u, l, s, t[n + 13], 5, -1444681467), s = $C_jYJ(s, c, u, l, t[n + 2], 9, -51403784), l = $C_jYJ(l, s, c, u, t[n + 7], 14, 1735328473), c = $C_qXI(c, u = $C_jYJ(u, l, s, c, t[n + 12], 20, -1926607734), l, s, t[n + 5], 4, -378558), s = $C_qXI(s, c, u, l, t[n + 8], 11, -2022574463), l = $C_qXI(l, s, c, u, t[n + 11], 16, 1839030562), u = $C_qXI(u, l, s, c, t[n + 14], 23, -35309556), c = $C_qXI(c, u, l, s, t[n + 1], 4, -1530992060), s = $C_qXI(s, c, u, l, t[n + 4], 11, 1272893353), l = $C_qXI(l, s, c, u, t[n + 7], 16, -155497632), u = $C_qXI(u, l, s, c, t[n + 10], 23, -1094730640), c = $C_qXI(c, u, l, s, t[n + 13], 4, 681279174), s = $C_qXI(s, c, u, l, t[n], 11, -358537222), l = $C_qXI(l, s, c, u, t[n + 3], 16, -722521979), u = $C_qXI(u, l, s, c, t[n + 6], 23, 76029189), c = $C_qXI(c, u, l, s, t[n + 9], 4, -640364487), s = $C_qXI(s, c, u, l, t[n + 12], 11, -421815835), l = $C_qXI(l, s, c, u, t[n + 15], 16, 530742520), c = $C_qRT(c, u = $C_qXI(u, l, s, c, t[n + 2], 23, -995338651), l, s, t[n], 6, -198630844), s = $C_qRT(s, c, u, l, t[n + 7], 10, 1126891415), l = $C_qRT(l, s, c, u, t[n + 14], 15, -1416354905), u = $C_qRT(u, l, s, c, t[n + 5], 21, -57434055), c = $C_qRT(c, u, l, s, t[n + 12], 6, 1700485571), s = $C_qRT(s, c, u, l, t[n + 3], 10, -1894986606), l = $C_qRT(l, s, c, u, t[n + 10], 15, -1051523), u = $C_qRT(u, l, s, c, t[n + 1], 21, -2054922799), c = $C_qRT(c, u, l, s, t[n + 8], 6, 1873313359), s = $C_qRT(s, c, u, l, t[n + 15], 10, -30611744), l = $C_qRT(l, s, c, u, t[n + 6], 15, -1560198380), u = $C_qRT(u, l, s, c, t[n + 13], 21, 1309151649), c = $C_qRT(c, u, l, s, t[n + 4], 6, -145523070), s = $C_qRT(s, c, u, l, t[n + 11], 10, -1120210379), l = $C_qRT(l, s, c, u, t[n + 2], 15, 718787259), u = $C_qRT(u, l, s, c, t[n + 9], 21, -343485551), c = $C_gOL(c, r), u = $C_gOL(u, i), l = $C_gOL(l, a), s = $C_gOL(s, o);
return [c, u, l, s];
}
function $C_rYM(t, e, n) {
return $C_vZD(t, e, n);
}
function $C_sXR(t, e, n, r, i, a) {
return $C_gOL((o = $C_gOL($C_gOL(e, t), $C_gOL(r, a))) << (c = i) | o >>> 32 - c, n);
var o;
var c;
}
function genPc(t, e, n) {
return $C_vZD(t, e, n);
}
let t = '[{"t":"PX12095","d":{"PX11645":"https://www.flyfrontier.com/","PX12207":0,"PX12458":"MacIntel","PX11902":0,"PX11560":2415,"PX12248":3600,"PX11385":1693058324224,"PX12280":1693058324227,"PX11496":"ab7f61e0-4418-11ee-87a1-e51213af1917","PX12564":null,"PX12565":-1,"PX11379":false}}]'
let e = 'ab7f61e0-4418-11ee-87a1-e51213af1917:v8.6.4:314'
console.log(genPc(t, e))
\ No newline at end of file
const md5 = require('md5');
var data = [{
"t": "PX11590",
"d": {
"PX11431": 1692944411084,
"PX12330": "109|66|66|70|80", // ["webstore", 'runtime', 'app', "csi", "loadTimes"];构造函数 长度
"PX11705": 517, //fetch+''
"PX11938": true, //caches
"PX11602": true, //caches
"PX12021": "false", // webdriver
"PX12421": "false",//webdriver
"PX12124": 1,// 'webdriver' in navigator?1:0
"PX11609": 1, //'webdriver' in navigator?1:0
"PX12291": "",
"PX11881": ["loadTimes", "csi", "app"],// chrome 属性
"PX12207": 0, //v["self"] === v["top"] ? 0 : 1
"PX11538": 4, // history.length
"PX11984": "TypeError: Cannot read properties of null (reading '0')\n at xe (https://client.px-cloud.net/PXVb73hTEg/main.min.js:910:13)\n at Ea (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2196:30)\n at Ba (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2175:22)\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2399:9",
"PX11645": "https:/www.flyfrontier.com/", // href
"PX11597": [],// location.ancestorOrigins
"PX12023": "",// document.referrer
"PX11337": false,// window.hasOwnProperty('onorientationchange')
"PX12544": true, // !(!window["WebAssembly"] || !window["WebAssembly"]["instantiate"])
"PX12589": "succeeded", // 执行 wasm 结果?
"PX11524": true, // wasm 计算结果
"PX11843": 1920, //screen["width"]
"PX11781": 1080,// screen["height"]
"PX12121": 1920,// screen["availWidth"
"PX12128": 1055,// screen["availHeight"]
"PX12387": "1920X1080",// F + "X" + N
"PX12003": 24, // screen["pixelDepth"]
"PX11380": 24, // screen["colorDepth"]
"PX11494": 658, // v["innerWidth"]
"PX12411": 853, // v["innerHeight"]
"PX12443": 0, // v["scrollX"]
"PX12447": 0, // v["scrollY"]
"PX11533": true, // !(0 === v["outerWidth"] && 0 === v["outerHeight"])
"PX12079": false,// v["hasOwnProperty"]("_cordovaNative") || v["hasOwnProperty"]("Ti") || v["hasOwnProperty"]("webView") || v["hasOwnProperty"]("Android") || p["hasOwnProperty"]("ondeviceready") || m["hasOwnProperty"]("standalone") || v["external"] && "notify" in v["external"] || m["userAgent"]["indexOf"](" Mobile/") > 0 && -1 === m["userAgent"]["indexOf"](" Safari/");
"PX12278": true,
"PX11694": false,
"PX12294": false,
"PX12514": true,
"PX12515": "TypeError: Cannot read properties of undefined (reading 'width')",
"PX12516": "webkit",
"PX12517": 33,
"PX12518": false,
"PX12545": false,
"PX12593": false,
"PX12595": "AudioData.SVGAnimatedAngle.SVGMetadataElement",
"PX12069": ["PDF Viewer", "Chrome PDF Viewer", "Chromium PDF Viewer", "Microsoft Edge PDF Viewer", "WebKit built-in PDF"],
"PX12286": 5,
"PX11576": true,
"PX12318": true,
"PX11384": true,
"PX11886": true,
"PX11583": "en-US",
"PX12458": "MacIntel",
"PX11681": ["en-US", "en", "zh-CN", "ru"],
"PX11754": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"PX12037": true,
"PX11390": -480,
"PX11621": 8,
"PX11657": 4,
"PX12081": "Gecko",
"PX11908": "20030107",
"PX12314": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"PX11829": true,
"PX11464": true,
"PX12054": 2,
"PX11821": "Netscape",
"PX11479": "Mozilla",
"PX11674": true,
"PX12241": 500,
"PX11372": false,
"PX11683": 1.5,
"PX11561": "3g",
"PX11877": true,
"PX12100": true,
"PX12506": "arm",
"PX12507": "64",
"PX12509": false,
"PX12510": "",
"PX12511": "macOS",
"PX12512": "13.5.0",// platformVersion
"PX12513": "115.0.5790.170", //Mu["uaFullVersion"]
"PX12548": true,
"PX12549": true,
"PX11539": "64556c77", //Me(console.log)
"PX11528": "", // Object["getOwnPropertyDescriptor"](HTMLDocument["prototype"], "cookie")["get"]
"PX12271": "10207b2f",// Va(Object["prototype"]["toString"])
"PX11849": "10207b2f",// return Va(m["toString"]);
"PX12464": "90e65465",// Me("" + (e["get"] || "") + (e["value"] || ""))
"PX11356": true,
"PX12426": true,
"PX11791": true,
"PX11517": true,
"PX12520": true,
"PX12524": "4YC14YCd4YCd4YCV4YCe4YCX4YGS5J256aus7r266YaI5oCR7r27", // Pu = speechSynthesis.getVoices() is(Pu[161].voiceURI)
"PX12527": "3207084bd110f1ac964863e23aa78e04", // '1970/1/1'
"PX12260": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"PX12249": false,
"PX11897": "90e65465", // 固定
"PX11701": "13064822615894407713",
"75602>44073>?2261175": "46531=77340=<1152246",
"PX12454": 4441,
"PX12597": 1,
"PX11529": 102721973,// usedJSHeapSize
"PX11555": 4294705152,// jsHeapSizeLimit
"PX11833": 122502277,// totalJSHeapSize
"PX11840": "Fri Aug 25 2023 14:20:11 GMT+0800 (中国标准时间)",
"PX11526": false,
"PX11684": false,
"PX11812": false,
"PX12335": true,
"PX12080": 0,
"PX11678": false,
"PX11349": "visible",
"PX12397": false,
"PX11387": 0,
"PX12150": 1920,
"PX12304": true,
"PX11651": 970,
"PX11867": "missing",
"PX12254": true,
"PX11540": true,
"PX11548": false,
"PX11446": true,
"PX12550": 1,
"PX12431": 0,
"PX11991": 10,
"PX11837": 32,
"PX11632": 0,
"PX11409": 9,
"PX12573": "e29b74b1",
"PX11508": "49e5084e",
"PX11452": "7c5f9724",
"PX12218": "65d826e0",
"PX12481": "a9269e00",
"PX11780": "50a5ec55",
"PX12588": "webkit",
"PX12551": "https:",
"PX12553": "Asia/Shanghai",
"PX12567": "w3c",
"PX12576": "screen",
"PX12594": false,
"PX12566": false,
"PX12571": "46ef8eb2", // allowedFeatures();
"PX12581": "default",
"PX12582": 3,
"PX12587": false,
"PX11303": false,
"PX11515": false,
"PX12133": false,
"PX12340": false,
"PX11738": false,
"PX11723": false,
"PX11389": false,
"PX11839": false,
"PX11460": false,
"PX12102": false,
"PX11378": false,
"PX12317": false,
"PX11804": "36f924a304c56d1ae9971c767ca7f510", //uuid 转换
"PX12118": "cjk4g6p0l92uaoruv300",// 第一步返回 0ll0ll
"PX11746": "4cd10383c35e63adbb6c4982d8fc63ff", //_pxvid
"PX11371": "dabf24bc8ba86bef39c3a20698ae7e02", // pxsid sessionStorage
"PX12501": "e5e8bc8df2602d2d3877dd2f83c1c044", // px_hvd localStorage
"PX12169": 2,
"PX11902": 1,
"PX11560": 19398,
"PX11332": 1692944411272,
"PX12248": 3600,
"PX11385": 1692944398418,
"PX12280": 1692944411981,
"PX11496": "6a6d1c10-430f-11ee-a838-3d4272821365",
"PX12564": null,
"PX12565": -1,
"PX11379": false
function R(t, e, n, r, o, i, l) {
return B(e ^ n ^ r, t, e, o, i, l);
}
function O(t, e, n, r, o, i, l) {
return B(n ^ (e | ~r), t, e, o, i, l);
}
function k(t, e, n, r, o, i, l) {
return B(e & r | n & ~r, t, e, o, i, l);
}
function x(t, e) {
return t << e | t >>> 32 - e;
}
function E(t, e) {
return (t >> 16) + (e >> 16) + ((65535 & t) + (65535 & e) >> 16) << 16 | 65535 & (65535 & t) + (65535 & e);
}
function B(t, e, n, r, o, i) {
return E(x(E(E(e, t), E(r, i)), o), n);
}
function M(t, e, n, r, o, i, l) {
return B(e & n | ~e & r, t, e, o, i, l);
}
function I(t) {
var e = void 0, n = [];
for (n[(t.length >> 2) - 1] = void 0, e = 0; e < n.length; e += 1) n[e] = 0;
for (e = 0; e < 8 * t.length; e += 8) n[e >> 5] |= (255 & t.charCodeAt(e / 8)) << e % 32;
return n;
}
function F(t, e) {
t[e >> 5] |= 128 << e % 32, t[14 + (e + 64 >>> 9 << 4)] = e;
var n = void 0, r = void 0, o = void 0, i = void 0, l = void 0, a = 1732584193, c = -271733879, u = -1732584194,
f = 271733878;
for (n = 0; n < t.length; n += 16) r = a, o = c, i = u, l = f, a = M(a, c, u, f, t[n], 7, -680876936), f = M(f, a, c, u, t[n + 1], 12, -389564586), u = M(u, f, a, c, t[n + 2], 17, 606105819), c = M(c, u, f, a, t[n + 3], 22, -1044525330), a = M(a, c, u, f, t[n + 4], 7, -176418897), f = M(f, a, c, u, t[n + 5], 12, 1200080426), u = M(u, f, a, c, t[n + 6], 17, -1473231341), c = M(c, u, f, a, t[n + 7], 22, -45705983), a = M(a, c, u, f, t[n + 8], 7, 1770035416), f = M(f, a, c, u, t[n + 9], 12, -1958414417), u = M(u, f, a, c, t[n + 10], 17, -42063), c = M(c, u, f, a, t[n + 11], 22, -1990404162), a = M(a, c, u, f, t[n + 12], 7, 1804603682), f = M(f, a, c, u, t[n + 13], 12, -40341101), u = M(u, f, a, c, t[n + 14], 17, -1502002290), c = M(c, u, f, a, t[n + 15], 22, 1236535329), a = k(a, c, u, f, t[n + 1], 5, -165796510), f = k(f, a, c, u, t[n + 6], 9, -1069501632), u = k(u, f, a, c, t[n + 11], 14, 643717713), c = k(c, u, f, a, t[n], 20, -373897302), a = k(a, c, u, f, t[n + 5], 5, -701558691), f = k(f, a, c, u, t[n + 10], 9, 38016083), u = k(u, f, a, c, t[n + 15], 14, -660478335), c = k(c, u, f, a, t[n + 4], 20, -405537848), a = k(a, c, u, f, t[n + 9], 5, 568446438), f = k(f, a, c, u, t[n + 14], 9, -1019803690), u = k(u, f, a, c, t[n + 3], 14, -187363961), c = k(c, u, f, a, t[n + 8], 20, 1163531501), a = k(a, c, u, f, t[n + 13], 5, -1444681467), f = k(f, a, c, u, t[n + 2], 9, -51403784), u = k(u, f, a, c, t[n + 7], 14, 1735328473), c = k(c, u, f, a, t[n + 12], 20, -1926607734), a = R(a, c, u, f, t[n + 5], 4, -378558), f = R(f, a, c, u, t[n + 8], 11, -2022574463), u = R(u, f, a, c, t[n + 11], 16, 1839030562), c = R(c, u, f, a, t[n + 14], 23, -35309556), a = R(a, c, u, f, t[n + 1], 4, -1530992060), f = R(f, a, c, u, t[n + 4], 11, 1272893353), u = R(u, f, a, c, t[n + 7], 16, -155497632), c = R(c, u, f, a, t[n + 10], 23, -1094730640), a = R(a, c, u, f, t[n + 13], 4, 681279174), f = R(f, a, c, u, t[n], 11, -358537222), u = R(u, f, a, c, t[n + 3], 16, -722521979), c = R(c, u, f, a, t[n + 6], 23, 76029189), a = R(a, c, u, f, t[n + 9], 4, -640364487), f = R(f, a, c, u, t[n + 12], 11, -421815835), u = R(u, f, a, c, t[n + 15], 16, 530742520), c = R(c, u, f, a, t[n + 2], 23, -995338651), a = O(a, c, u, f, t[n], 6, -198630844), f = O(f, a, c, u, t[n + 7], 10, 1126891415), u = O(u, f, a, c, t[n + 14], 15, -1416354905), c = O(c, u, f, a, t[n + 5], 21, -57434055), a = O(a, c, u, f, t[n + 12], 6, 1700485571), f = O(f, a, c, u, t[n + 3], 10, -1894986606), u = O(u, f, a, c, t[n + 10], 15, -1051523), c = O(c, u, f, a, t[n + 1], 21, -2054922799), a = O(a, c, u, f, t[n + 8], 6, 1873313359), f = O(f, a, c, u, t[n + 15], 10, -30611744), u = O(u, f, a, c, t[n + 6], 15, -1560198380), c = O(c, u, f, a, t[n + 13], 21, 1309151649), a = O(a, c, u, f, t[n + 4], 6, -145523070), f = O(f, a, c, u, t[n + 11], 10, -1120210379), u = O(u, f, a, c, t[n + 2], 15, 718787259), c = O(c, u, f, a, t[n + 9], 21, -343485551), a = E(a, r), c = E(c, o), u = E(u, i), f = E(f, l);
return [a, c, u, f];
}
function _(t) {
var e = void 0, n = "";
for (e = 0; e < 32 * t.length; e += 8) n += String.fromCharCode(t[e >> 5] >>> e % 32 & 255);
return n;
}
function N(t, e) {
var n = void 0, r = I(t), o = [], i = [];
for (o[15] = i[15] = void 0, r.length > 16 && (r = F(r, 8 * t.length)), n = 0; n < 16; n += 1) o[n] = 909522486 ^ r[n], i[n] = 1549556828 ^ r[n];
var l = F(o.concat(I(e)), 512 + 8 * e.length);
return _(F(i.concat(l), 640))
}
function j(t) {
var e = "0123456789abcdef", n = "", r = void 0, o = void 0;
for (o = 0; o < t.length; o += 1) r = t.charCodeAt(o), n += e.charAt(r >>> 4 & 15) + e.charAt(15 & r);
return n
}
function createPx2(t, e) {
return j(N(t, e))
}
function createPx1(t) {
t = "" + t;
for (var e, n = 0, r = 0; r < t.length; r++) {
n = (n << 5) - n + t.charCodeAt(r), n |= 0;
}
}]
\ No newline at end of file
return e = n, (e |= 0) < 0 && (e += 4294967296), e.toString(16);
}
function getPX12573(a, b, c) {
let t = function (o, n, h) {
return o - 36454 + h.charCodeAt(12);
// }["apply"](null, ['0llll00l', 'l000l0', 'uuid'])
}["apply"](null, [a, b, c])
return createPx1(t);
}
function getNoPX(data) {
function $C_kKK(t, e) {
for (var n = "", r = 0; r < t.length; r++) n += String.fromCharCode(e ^ t.charCodeAt(r));
return n;
}
let res = [$C_kKK(data['PX11701'], data['PX11431'] % 10 + 2), $C_kKK(data['PX11701'], data['PX11431'] % 10 + 1)]
return res;
}
let ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36';
function genPayload2(m, uuid) {
let vid = m['l000l0']
let sid = m['000ll0']
let data = {
// "PX11431": 1692944411084, // 0llll00l
"PX11431": m['0llll00l'], //
// "75602>44073>?2261175": "46531=77340=<1152246",
"PX12454": m['0llll000'], // 0llll000
"PX11701": m['ll0ll0'], // ll0ll0
"PX11529": 102721973,// usedJSHeapSize
"PX11555": 4294705152,// jsHeapSizeLimit
"PX11833": 122502277,// totalJSHeapSize
// "PX11840": "Fri Aug 25 2023 14:20:11 GMT+0800 (中国标准时间)",
"PX11840": new Date() + '', // "PX12573": "e29b74b1", // parseInt(0llll00l/10)
"PX12573": getPX12573(m['0llll00l'], m['l000l0'], uuid), // parseInt(0llll00l/10)
// "PX11804": "36f924a304c56d1ae9971c767ca7f510", //uuid 转换
"PX11804": createPx2(ua, uuid), //uuid 转换
"PX12118": m['0ll0ll'],// 第一步返回 0ll0ll
"PX11746": createPx2(ua, vid), //_pxvid // l000l0
"PX11371": createPx2(ua, sid), // pxsid sessionStorage // 000ll0
"PX12501": md5(vid), // vid md5
"PX12169": 2,
"PX11902": 1,
"PX11560": 19398, // performance.now()
// "PX11332": 1692944411272,
"PX11332": Date.now(),
"PX12248": 3600,
"PX11385": Date.now() - parseInt(Math.random() * 500 + 500),
"PX12280": Date.now() - parseInt(Math.random() * 500 + 2000),
"PX11496": uuid, //uuid
"PX12330": "109|66|66|70|80", // ["webstore", 'runtime', 'app', "csi", "loadTimes"];构造函数 长度
"PX11705": 517, //fetch+''
"PX11938": true, //caches
"PX11602": true, //caches
"PX12021": "false", // webdriver
"PX12421": "false",//webdriver
"PX12124": 1,// 'webdriver' in navigator?1:0
"PX11609": 1, //'webdriver' in navigator?1:0
"PX12291": "",
"PX11881": ["loadTimes", "csi", "app"],// chrome 属性
"PX12207": 0, //v["self"] === v["top"] ? 0 : 1
"PX11538": 4, // history.length
"PX11984": "TypeError: Cannot read properties of null (reading '0')\n at xe (https://client.px-cloud.net/PXVb73hTEg/main.min.js:910:13)\n at Ea (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2196:30)\n at Ba (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2175:22)\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2399:9",
"PX11645": "https://www.flyfrontier.com/", // href
"PX11597": [],// location.ancestorOrigins
"PX12023": "",// document.referrer
"PX11337": false,// window.hasOwnProperty('onorientationchange')
"PX12544": true, // !(!window["WebAssembly"] || !window["WebAssembly"]["instantiate"])
"PX12589": "succeeded", // 执行 wasm 结果?
"PX11524": true, // wasm 计算结果
"PX11843": 1920, //screen["width"]
"PX11781": 1080,// screen["height"]
"PX12121": 1920,// screen["availWidth"
"PX12128": 1055,// screen["availHeight"]
"PX12387": "1920X1080",// F + "X" + N
"PX12003": 24, // screen["pixelDepth"]
"PX11380": 24, // screen["colorDepth"]
"PX11494": 658, // v["innerWidth"]
"PX12411": 853, // v["innerHeight"]
"PX12443": 0, // v["scrollX"]
"PX12447": 0, // v["scrollY"]
"PX11533": true, // !(0 === v["outerWidth"] && 0 === v["outerHeight"])
"PX12079": false,// v["hasOwnProperty"]("_cordovaNative") || v["hasOwnProperty"]("Ti") || v["hasOwnProperty"]("webView") || v["hasOwnProperty"]("Android") || p["hasOwnProperty"]("ondeviceready") || m["hasOwnProperty"]("standalone") || v["external"] && "notify" in v["external"] || m["userAgent"]["indexOf"](" Mobile/") > 0 && -1 === m["userAgent"]["indexOf"](" Safari/");
"PX12278": true,
"PX11694": false,
"PX12294": false,
"PX12514": true,
"PX12515": "TypeError: Cannot read properties of undefined (reading 'width')",
"PX12516": "webkit",
"PX12517": 33,
"PX12518": false,
"PX12545": false,
"PX12593": false,
"PX12595": "AudioData.SVGAnimatedAngle.SVGMetadataElement",
"PX12069": ["PDF Viewer", "Chrome PDF Viewer", "Chromium PDF Viewer", "Microsoft Edge PDF Viewer", "WebKit built-in PDF"],
"PX12286": 5,
"PX11576": true,
"PX12318": true,
"PX11384": true,
"PX11886": true,
"PX11583": "en-US",
"PX12458": "MacIntel",
"PX11681": ["en-US", "en", "zh-CN", "ru"],
"PX11754": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"PX12037": true,
"PX11390": -480,
"PX11621": 8,
"PX11657": 4,
"PX12081": "Gecko",
"PX11908": "20030107",
"PX12314": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"PX11829": true,
"PX11464": true,
"PX12054": 2,
"PX11821": "Netscape",
"PX11479": "Mozilla",
"PX11674": true,
"PX12241": 500, //m["connection"]["rtt"]
"PX11372": false,
"PX11683": 1.5,
"PX11561": "3g",
"PX11877": true,
"PX12100": true,
"PX12506": "x86",
"PX12507": "64",
"PX12509": false,
"PX12510": "",
"PX12511": "macOS",
"PX12512": "13.2.0",// platformVersion
"PX12513": "114.0.5735.198", //Mu["uaFullVersion"]
"PX12548": true,
"PX12555": {
"plugext": {
"0": {
"f": "internal-pdf-viewer", "n": "PDF Viewer"
}, "1": {
"f": "internal-pdf-viewer", "n": "Chrome PDF Viewer"
}, "2": {
"f": "internal-pdf-viewer", "n": "Chromium PDF Viewer"
}, "3": {
"f": "internal-pdf-viewer", "n": "Microsoft Edge PDF Viewer"
}, "4": {
"f": "internal-pdf-viewer", "n": "WebKit built-in PDF"
}
}, "plugins_len": 5
},
"PX12583": {
"smd": {
"ok": true, "ex": false
}
},
"PX12578": {},
"PX12579": {
"support": true, "status": {
"effectiveType": "4g", "rtt": 100, "downlink": 3.4, "saveData": false
}
},
"PX12508": [{
"brand": "Not.A/Brand", "version": "8"
}, {
"brand": "Chromium", "version": "114"
}, {
"brand": "Google Chrome", "version": "114"
}],
"PX12549": true,
"PX11539": "64556c77", //Me(console.log)
"PX11528": "", // Object["getOwnPropertyDescriptor"](HTMLDocument["prototype"], "cookie")["get"]
"PX12271": "10207b2f",// Va(Object["prototype"]["toString"])
"PX11849": "10207b2f",// return Va(m["toString"]);
"PX12464": "90e65465",// Me("" + (e["get"] || "") + (e["value"] || ""))
"PX11356": true,
"PX12426": true,
"PX11791": true,
"PX11517": true,
"PX12520": true,
"PX12524": "4YC14YCd4YCd4YCV4YCe4YCX4YGS5J256aus7r266YaI5oCR7r27", // Pu = speechSynthesis.getVoices() is(Pu[161].voiceURI)
"PX12527": "3207084bd110f1ac964863e23aa78e04", // '1970/1/1'
"PX12260": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"PX12249": false,
"PX11897": "90e65465", // 固定
"PX12597": 1,
"PX11526": false,
"PX11684": false,
"PX11812": false,
"PX12335": true,
"PX12080": 0,
"PX11678": false,
"PX11349": "visible",
"PX12397": false,
"PX11387": 0,
"PX12150": 1920,
"PX12304": true,
"PX11651": 970,
"PX11867": "missing",
"PX12254": true,
"PX11540": true,
"PX11548": false,
"PX11446": true,
"PX12550": 1,
"PX12431": 0,
"PX11991": 10,
"PX11837": 32,
"PX11632": 0,
"PX11409": 9,
"PX11508": "49e5084e",
"PX11452": "7c5f9724",
"PX12218": "65d826e0",
"PX12481": "a9269e00",
"PX11780": "50a5ec55",
"PX12588": "webkit",
"PX12551": "https:",
"PX12553": "Asia/Shanghai",
"PX12567": "w3c",
"PX12576": "screen",
"PX12594": false,
"PX12566": false,
"PX12571": "46ef8eb2", // allowedFeatures();
"PX12581": "default",
"PX12582": 3,
"PX12587": false,
"PX11303": false,
"PX11515": false,
"PX12133": false,
"PX12340": false,
"PX11738": false,
"PX11723": false,
"PX11389": false,
"PX11839": false,
"PX11460": false,
"PX12102": false,
"PX11378": false,
"PX12317": false,
"PX12564": null,
"PX12565": -1,
"PX11379": false
}
let noPX = getNoPX(data)
data[noPX[0]] = noPX[1]
let data2 = [{
"t": "PX11590",
"d": data
}]
return JSON.stringify(data2);
}
let t = [
'000000|cu',
'0lll0l00|36f1d4c7-440a-11ee-b285-6c5a696e5a71|true',
'0l0000|0c6da3bd303dc6f63c800adcd73014c9a3474840acb9efe0cc6511eb167b821c',
'0llll00l|1693052115774',
'l000l0|3669851b-440a-11ee-81d6-109e92ecfaad|31536000|true',
'000ll0|36f1cffb-440a-11ee-b285-6c5a696e5a71',
'0llll000|4473',
'0l00ll|_px2|330|eyJ1IjoiYjhhNTdhNzEtNmM1OC0xMDMxLTkxNDEtZDU5NjFmY2JmYjNlIiwidiI6IjM2Njk4NTFiLTQ0MGEtMTFlZS04MWQ2LTEwOWU5MmVjZmFhZCIsInQiOjE2OTMwNTI0MTU3NzQsImgiOiI4Y2YzYjFlYjQ5M2JlODQxYmYzNzUwMmMyZDI4YmViODU5M2Q3Mjk1Mzc0ZDE2ZDgxYThjZjE3NGYxMzI3NTQ3In0=|true|300',
'0ll0ll|cjkupkpovp9grjofvm10',
'll0ll0|11861745493525731832',
'0l0lll|cc|60|U2FtZVNpdGU9TGF4Ow=='
]
let m = {};
for (let i = 0; i < t.length; i++) {
let a = t[i].split('|');
m[a[0]] = a[1]
}
console.log(genPayload2(m, '36f1cffb-440a-11ee-b285-6c5a696e5a71'))
// console.log(JSON.stringify(data))
// console.log(data[0].d.PX11804)
\ No newline at end of file
......@@ -195,7 +195,7 @@ function j(t) {
function Y(t, e) {
return j(N(t, e))
}
console.log(Y('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'bbbef4d0-43f0-11ee-943d-35416425a3b0'))
function ie(t) {
for (var e = "", n = "", r = 0; r < t.length; r++) {
var o = t.charCodeAt(r);
......@@ -239,13 +239,12 @@ function Jt(t, e) {
let t = 'd83eb229-6870-1031-9f79-3fa1a5320e13:v7.6.2:263'
let e = '[{"t":"PX10816"""d":{"PX10360":"https://www.chegg.com/"""PX10929":0""PX11186":"Win32"""PX10622":0""PX10272":6869""PX10970":3600""PX10094":1690441304937""PX11004":1690441304948""PX10206":"d83eb229-6870-1031-9f79-3fa1a5320e13"""PX10088":false}}]'
t = '[{"t":"PX12095","d":{"PX11645":"file:///E:/PYTHONSSS/px3/static/index.html","PX12207":0,"PX12458":"Win32","PX11902":0,"PX11560":89,"PX12248":3600,"PX11385":1690523967777,"PX12280":1690523967783,"PX11496":"e956bcd0-2d0b-11ee-a21c-431215775a7a","PX12564":null,"PX12565":-1,"PX11379":true}}]'
e = 'e956bcd0-2d0b-11ee-a21c-431215775a7a:v8.6.4:314'
console.log(111, Jt(t, e))
t = `[{"t":"PX11590","d":{"PX11431":1693057908455,"PX12069":["PDF Viewer","Chrome PDF Viewer","Chromium PDF Viewer","Microsoft Edge PDF Viewer","WebKit built-in PDF"],"PX12286":5,"PX11576":true,"PX12318":true,"PX11384":true,"PX11886":true,"PX11583":"en-US","PX12458":"MacIntel","PX11681":["en-US","en","zh-CN","ru"],"PX11754":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX12037":true,"PX11390":-480,"PX11621":8,"PX11657":4,"PX12081":"Gecko","PX11908":"20030107","PX12314":"5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX11829":true,"PX11464":true,"PX12054":2,"PX11821":"Netscape","PX11479":"Mozilla","PX11674":true,"PX12241":100,"PX11372":false,"PX11683":5.35,"PX11561":"4g","PX11877":true,"PX12100":true,"PX12506":"x86","PX12507":"64","PX12508":[{"brand":"Not.A/Brand","version":"8"},{"brand":"Chromium","version":"114"},{"brand":"Google Chrome","version":"114"}],"PX12509":false,"PX12510":"","PX12511":"macOS","PX12512":"13.2.0","PX12513":"114.0.5735.198","PX12548":true,"PX12549":true,"PX12588":"webkit","PX12551":"https:","PX12553":"Asia/Shanghai","PX12567":"w3c","PX12576":"screen","PX12555":{"plugext":{"0":{"f":"internal-pdf-viewer","n":"PDF Viewer"},"1":{"f":"internal-pdf-viewer","n":"Chrome PDF Viewer"},"2":{"f":"internal-pdf-viewer","n":"Chromium PDF Viewer"},"3":{"f":"internal-pdf-viewer","n":"Microsoft Edge PDF Viewer"},"4":{"f":"internal-pdf-viewer","n":"WebKit built-in PDF"}},"plugins_len":5},"PX12583":{"smd":{"ok":true,"ex":false}},"PX12578":{},"PX12594":false,"PX12566":false,"PX12571":"36813bc5","PX12579":{"support":true,"status":{"effectiveType":"4g","rtt":100,"downlink":5.35,"saveData":false}},"PX12581":"default","PX12582":3,"PX12587":false,"PX12278":true,"PX11694":false,"PX12294":false,"PX12514":true,"PX12515":"TypeError: Cannot read properties of undefined (reading 'width')","PX12516":"webkit","PX12517":33,"PX12518":false,"PX12545":false,"PX12593":false,"PX12595":"AudioData.SVGAnimatedAngle.SVGMetadataElement","PX11804":"0447d3a80396b9d8ec64794859fd80ad","PX12118":"cjl06t73f2l7lpofs9j0","PX11746":"836e16c47431c942e975cc938fbdb047","PX11371":"be5ca4effdff6b09a2e87e9ba4f548d8","PX12501":"3180497098e8757182535322d779dc2d","PX12597":1,"PX12573":"83f24ee","PX12207":0,"PX11538":2,"PX11984":"TypeError: Cannot read properties of null (reading '0')\\n at $C_mMY (https://client.px-cloud.net/PXVb73hTEg/main.min.js:909:13)\\n at $C_iLQ (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2196:36)\\n at $C_qCQ (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2175:23)\\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2173:13","PX11645":"https://www.flyfrontier.com/","PX11597":[],"PX12023":"","PX11337":false,"PX11701":"75558673775375206817","0222?104002402571?60":"1333>015113513460>71","PX12454":2385,"PX11508":"49e5084e","PX11452":"7c5f9724","PX12218":"65d826e0","PX12481":"a9269e00","PX11780":"50a5ec55","PX11529":41318015,"PX11555":4294705152,"PX11833":55951815,"PX11840":"Sat Aug 26 2023 21:51:51 GMT+0800 (中国标准时间)","PX11526":false,"PX11684":false,"PX11812":false,"PX12335":true,"PX12080":0,"PX11678":false,"PX11349":"visible","PX12397":false,"PX11387":0,"PX12150":2560,"PX12304":true,"PX11651":970,"PX11867":"missing","PX12254":true,"PX11540":true,"PX11548":false,"PX11446":true,"PX12550":1,"PX12431":0,"PX11991":3,"PX11837":9,"PX11632":0,"PX11409":9,"PX12544":true,"PX12589":"succeeded","PX11524":true,"PX12330":"109|66|66|70|80","PX11705":545,"PX11938":true,"PX11602":true,"PX12021":"false","PX12421":"false","PX12124":1,"PX11609":1,"PX12291":"","PX11881":["loadTimes","csi","app"],"PX11539":"64556c77","PX11528":"","PX12271":"10207b2f","PX11849":"10207b2f","PX12464":"90e65465","PX11356":true,"PX12426":true,"PX11791":true,"PX11517":true,"PX12520":true,"PX12524":"4YC14YCd4YCd4YCV4YCe4YCX4YGS5J256aus7r266YaI5oCR7r27","PX12527":"3207084bd110f1ac964863e23aa78e04","PX12260":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","PX12249":false,"PX11897":"90e65465","PX11843":2560,"PX11781":1080,"PX12121":2560,"PX12128":970,"PX12387":"2560X1080","PX12003":24,"PX11380":24,"PX11494":1169,"PX12411":859,"PX12443":0,"PX12447":0,"PX11533":true,"PX12079":false,"PX11303":false,"PX11515":false,"PX12133":false,"PX12340":false,"PX11738":false,"PX11723":false,"PX11389":false,"PX11839":false,"PX11460":false,"PX12102":false,"PX11378":false,"PX12317":false,"PX12169":2,"PX11902":1,"PX11560":10028,"PX11332":1693057908377,"PX12248":3600,"PX11385":1693057904668,"PX12280":1693057911061,"PX11496":"b16c1090-4417-11ee-b7a9-c1daa79d4fc0","PX12564":null,"PX12565":-1,"PX11379":false}}]`
e = "b16c1090-4417-11ee-b7a9-c1daa79d4fc0:v8.6.4:314"
let res = Jt(t, e);
console.log(111, res)
console.log(Jt(res,e))
function sss(t) {
return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g, (function (t, e) {
......@@ -360,8 +359,9 @@ function rrr(t, n, e) {
}
let aa = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBUW15XCB0dHXcIHWJrZnp9fGFhYR1CSgEdQUZTRltRHVtcVldKHFpGX14QHhBiagMAAAIFEAgCHhBiagMABgcKEAgQZVtcAQAQHhBiagMDCwIAEAgCHhBiagMDBwQCEAgKCx4QYmoDAAAGChAIAQQCAh4QYmoDAwEKBxAIAwQLAgcAAQsEBQUFBR4QYmoDAAAKAhAIAwQLAgcAAQsEBQUKAR4QYmoDAwYLBBAIEFcLBwRQUVYCHwBWAlAfAwNXVx9TAANRHwYBAwADBwUFB1MFUxAeEGJqAwAHBAYQCFxHXl4eEGJqAwAHBAcQCB8DHhBiagMDAQULEAhGQEdXT09v'
aa = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBaRkZCQQgdHUVFRRxUXktUQF1cRltXQBxRXV8dEB4QYmoDAAACBRAIAh4QYmoDAAYHChAIEH9TUXtcRldeEB4QYmoDAwsCABAIAh4QYmoDAwcEAhAIAAAABx4QYmoDAAAGChAIAQQCAh4QYmoDAwEKBxAIAwQLAQGMDA^AoBBgALAB4QYmoDAAAKAhAIAwQLAQMDS}DNKAAoBB8gALBB4DQYmoDAwYLBBAIEAQHAwcBUFMLHwRRBwofANwIBAx8LAFcKH1QLVAULV1MDAFZQVhAeEGJqAwAa>HBDAY`QCFKxHXl4e}EGJqAwAHBAcQCGB8DHhBiagMDAQULEAhUU15BVx4QYmoDAAECBRK7AIEGJqAwMFBgcQHhBiagMDBAQKEAgQQkpaURAeEGJ7qAwABBgoQCFRTXkFXT09v'
console.log(rrr(o, aa, ur))
console.log(11, rrr(o, aa, ur))
function enc(payload, uuid) {
o = 'G^S}DNK8DNa>D`K}GK77'
......@@ -441,19 +441,18 @@ function oaa(n) {
return u
}
console.log('oaa',oaa("CCtiBE1idQ"))
console.log('oaa',oaa("CCtiBEFldQ"))
function oaa2(n) {
for (var c = n, u = "", l = 0; l < c.length; ++l) {
var s = "XsS5yUA".charCodeAt(l % 7);
console.log(l, s ^ c.charCodeAt(l))
// console.log(l, s ^ c.charCodeAt(l))
u += String.fromCharCode(s ^ c.charCodeAt(l));
}
console.log(u)
// console.log(u)
// console.log(atob(u))
console.log(btoa(u))
return u
return btoa(u).replaceAll('=','')
}
console.log('oaa2',oaa2("PX12572"))
\ No newline at end of file
console.log('oaa2',oaa2("PX11496"))
\ No newline at end of file
import base64
import py_mini_racer
from py_mini_racer import py_mini_racer
from node_vm2 import NodeVM
with open('test.js', 'r', encoding='utf-8') as f:
jsCode = f.read()
......@@ -53,7 +51,8 @@ a = 'aUkQRhAIEGJqAwMHBgUQHhBWEAhJEGJqAwAGCwAQCBBRBwIHUQMCVwAEUwNQBVMFBQYDBgEFVlA
a2 = "UAxQUAwMHD8QGFIcU1NQHAUZKlEpCg8JOTQHVC0KIg0tNCEULiQpUi4zUBgtNzYMLDQLGS0KKRQvJylSLiQICjk0C1AtNAwJKQkXCQQJKVYpDTUXLzQDGi40NgwsNDEZLgo1FC00Jgw6M1EILQoxUyw3Lg0uCggJLRopGi83KVAtGSkTKQ4xCS8KJVIvNClULhopGS0aNVUuCiETKQ0HCS8JKVIvJCYKOjc1Fy4aCA06CiYNLSQhUi4KIVEuNAQLLQ0lGi8nKVUvJDlRLQ0lUy03Mgs5NzlQOg01GS4kLgouDToJOiQqCi40AxgtGjVQOQ0tVC83JRgpDlBdHBQSFQUcU1BQHh4eHlBQUFBQUBwDFQ=="
a2 = "UFBQUFBQHAMVHh4eHlAMUFAMDBw/EBhSHFNTUBwFGSpRKQoPCTkKOVMtNCVULTQlFC4NLVEvI1AYLSQtGCw3JRo6JCUULgoLGS4nJVQ6CjYKORotGikJFwkECSlWKQoECS8kOVIvJAMaLDQxGi0NKRQtNCYMOjNRCS8kOggsNzoJOg0tFy4NKVE5GjUaOgkpEykOMQkvCiVSLzQpVS40BxctJAcZLSQlEykNBwkvCSlULQopUjkaC1Q5NAgKOQoMDTo3MVIvJClTLRomCy0kNRguJzlULzQyCi43NRktJAQLOic1FzkKKVM5CggLLicqCzokMgo5NAMaOjcuCy0KOgwuDSlVKQ5QXRwUEhUFHFNQUA=="
a2 = "UAxQUFBQHAUEWVRRVVJRVldVWAQBAgQDUVhZBFdWAlVYUFkDV1UFAgMFUlQEV1UDUAECBgIDUARZBVkGVAEBAgYFUwJXWFgeHh4eUAxQDAwMHBIGHFZQHFEeHh4eUAwMDAxQUFAcV1dTUh4eHh5QDFAMDAwcAwMcVlAcNVImFDo2LhAEJzVZNCcmVC8XXV0eHh4eUAwMDAxQUAwcUVZZUllVWVFZVldUVx4eHh5QUFBQUFAcAxUeHh4eUAwMUAwMHAMKC1hTDlQREAlXAxAWC1FQWVFQHh4eHgwMUAwMUBxRWFFUVVVZVFhWUlJUU1FTWVBVVQ=="
a2 = 'UFBQUFBQHAMVHh4eHlAMUFAMDBw/EBhSHFNTUBwFGSpRKQoPCS4kLRktCilRLQolFC4NLVEvI1AYLSQtGCw0B1UvNzUULzQpVC4KKVAtJykYLRopUSkJFwkECSlWKQ0lGDkKKRk6NCINLDQxUDkKCxQtNCYMOjNRCC80NgksNANTOiQmDS1SMRk6JzUaLgkpEykOMQkvCiVSLzQtGC0KA1QtNC0YLho1EykNBwkvCSlULzcxVTo3MgktNAMZLicqDDokMVIuGiYMORoLFy4KKRo5GjVULgoHUS80Ngg5NyYMOjQMDS8kJgguNzIJLjc2DDk0B1M6NAgKOjQlFzkaNVAuJDoIKQ5QXRwUEhUFHFNQUB4eHh5QDAwMUAwMUBxQ'
b2 = base64.b64decode(a2.encode())
......
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