更新于 07-14 11:38

This commit is contained in:
root
2021-07-14 11:38:04 -04:00
parent 47cf4eb651
commit 5f2d97ffe0
2 changed files with 460 additions and 439 deletions

View File

@ -2,21 +2,21 @@ const https = require('https');
const fs = require('fs').promises;
const { R_OK } = require('fs').constants;
const vm = require('vm');
const UA = require('./USER_AGENTS.js').USER_AGENT;
const URL = 'https://wbbny.m.jd.com/babelDiy/Zeus/2rtpffK8wqNyPBH6wyUDuBKoAbCt/index.html';
// const REG_MODULE = /(\d+)\:function\(.*(?=smashUtils\.get_risk_result)/gm;
const SYNTAX_MODULE = '!function(n){var r={};function o(e){if(r[e])';
const REG_SCRIPT = /<script type="text\/javascript" src="([^><]+\/(app\.\w+\.js))\">/gm;
const REG_ENTRY = /(__webpack_require__\(__webpack_require__.s=)(\d+)(?=\)})/;
const needModuleId = 355
const REG_ENTRY = /(__webpack_require__\(__webpack_require__\.s=)(\d+)(?=\)})/;
const needModuleId = 356
const DATA = {appid:'50085',sceneid:'OY217hPageh5'};
let smashUtils;
class MovementFaker {
class MoveMentFaker {
constructor(cookie) {
// this.secretp = secretp;
this.cookie = cookie;
this.ua = require('./USER_AGENTS.js').USER_AGENT;
}
async run() {
@ -47,9 +47,9 @@ class MovementFaker {
async init() {
try {
console.time('MovementFaker');
// console.time('MoveMentFaker');
process.chdir(__dirname);
const html = await MovementFaker.httpGet(URL);
const html = await MoveMentFaker.httpGet(URL);
const script = REG_SCRIPT.exec(html);
if (script) {
@ -61,9 +61,9 @@ class MovementFaker {
document: {
addEventListener: fnMock,
removeEventListener: fnMock,
cookie: this.cookie,
cookie: this.cookie
},
navigator: { userAgent: this.ua },
navigator: { userAgent: UA }
};
vm.createContext(ctx);
@ -76,7 +76,7 @@ class MovementFaker {
// console.log(html);
// console.log(script[1],script[2]);
console.timeEnd('MovementFaker');
// console.timeEnd('MoveMentFaker');
} catch (e) {
console.log(e)
}
@ -89,10 +89,9 @@ class MovementFaker {
return rawFile;
} catch (e) {
let jsContent = await MovementFaker.httpGet(url);
let jsContent = await MoveMentFaker.httpGet(url);
const moduleIndex = jsContent.indexOf(SYNTAX_MODULE, 1);
const findEntry = REG_ENTRY.test(jsContent);
console.log(jsContent)
if (!(moduleIndex && findEntry)) {
throw new Error('Module not found.');
}
@ -129,12 +128,12 @@ class MovementFaker {
}
async function getBody($) {
const zf = new MovementFaker($.cookie);
// const zf = new MovementFaker($.secretp, $.cookie);
const zf = new MoveMentFaker($.cookie);
// const zf = new MoveMentFaker($.secretp, $.cookie);
const ss = await zf.run();
return ss;
}
MovementFaker.getBody = getBody;
module.exports = MovementFaker;
MoveMentFaker.getBody = getBody;
module.exports = MoveMentFaker;

File diff suppressed because one or more lines are too long