511 lines
18 KiB
JavaScript
511 lines
18 KiB
JavaScript
const jsdom = require("jsdom");
|
|
const {JSDOM} = jsdom;
|
|
const {CookieJar} = require('tough-cookie');
|
|
|
|
|
|
delete __filename
|
|
delete __dirname
|
|
|
|
const customCookies = [];
|
|
const cookieJar = new CookieJar();
|
|
customCookies.forEach(cookie => {
|
|
cookieJar.setCookieSync(cookie, 'https://www.zhipin.com/web/geek/job?query=python&city=101020100');
|
|
});
|
|
proxy_ = function (obj) {
|
|
return new Proxy(obj, {
|
|
set(target, property, value) {
|
|
console.table([{"类型": 'set', '调用者': target, "调用属性": property, '设置值': value}])
|
|
return Reflect.set(...arguments)
|
|
},
|
|
get(target, property, receiver) {
|
|
console.table([{"类型": 'get', '调用者': target, "调用属性": property, '获取值': target[property]}])
|
|
return target[property]
|
|
}
|
|
})
|
|
}
|
|
|
|
const resourceLoader = new jsdom.ResourceLoader({
|
|
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36",
|
|
});
|
|
const html = `<!DOCTYPE html><p>Hello world</p>`;
|
|
const dom = new JSDOM(html, {
|
|
url: "https://www.zhipin.com/web/geek/job?query=python&city=101020100",
|
|
referrer: "https://www.zhipin.com/web/geek/job?query=python&city=101020100",
|
|
contentType: "text/html",
|
|
pretendToBeVisual: true,
|
|
resources: resourceLoader,
|
|
cookieJar: cookieJar,
|
|
});
|
|
|
|
window = global
|
|
self = global;
|
|
top = global;
|
|
// window = proxy_(window);
|
|
|
|
win = dom.window;
|
|
document = win.document;
|
|
// document = proxy_(document);
|
|
navigator = win.navigator;
|
|
// navigator = proxy_(navigator);
|
|
location = win.location
|
|
// location = proxy_(location);
|
|
history = win.history;
|
|
// history = proxy_(history);
|
|
screen = win.screen;
|
|
// screen = proxy_(screen);
|
|
localStorage = win.localStorage;
|
|
// localStorage = proxy_(localStorage);
|
|
sessionStorage = win.sessionStorage;
|
|
// sessionStorage = proxy_(sessionStorage)
|
|
window['outerHeighten'] = undefined;
|
|
window['alert'] = function () {
|
|
}
|
|
window['Buffer'] = false;
|
|
Frequency = {
|
|
name: 'Frequency',
|
|
setValueAtTime: function (a, b, c, d) {
|
|
if (b === undefined) {
|
|
throw new Error('Frequency')
|
|
}
|
|
}
|
|
}
|
|
// Frequency = proxy_(Frequency)
|
|
|
|
OscillatorNode = {
|
|
name: 'OscillatorNode',
|
|
frequency: Frequency,
|
|
connect: function (a) {
|
|
return DynamicsCompressorNode
|
|
},
|
|
start: function (a, b) {
|
|
if (a === 0) {
|
|
throw new Error('123')
|
|
}
|
|
}
|
|
}
|
|
// OscillatorNode = proxy_(OscillatorNode)
|
|
|
|
var Threshold = {
|
|
name: 'Threshold',
|
|
automationRate: "k-rate",
|
|
defaultValue: -24,
|
|
maxValue: 0,
|
|
minValue: -100,
|
|
value: -24,
|
|
setValueAtTime: function (a, b, c) {
|
|
return Threshold
|
|
}
|
|
}
|
|
// Threshold = proxy_(Threshold)
|
|
var knee = {
|
|
name: 'knee',
|
|
automationRate: "k-rate",
|
|
defaultValue: 30,
|
|
maxValue: 40,
|
|
minValue: 0,
|
|
value: 30,
|
|
setValueAtTime: function (a, b, c) {
|
|
return knee
|
|
}
|
|
}
|
|
// knee = proxy_(knee)
|
|
var ratio = {
|
|
name: 'rate',
|
|
automationRate: "k-rate",
|
|
defaultValue: 12,
|
|
maxValue: 20,
|
|
minValue: 1,
|
|
value: 12,
|
|
setValueAtTime: function (a, b) {
|
|
return ratio
|
|
}
|
|
}
|
|
// ratio = proxy_(ratio)
|
|
|
|
var attack = {
|
|
name: 'attack',
|
|
automationRate: "k-rate",
|
|
defaultValue: 12,
|
|
maxValue: 20,
|
|
minValue: 1,
|
|
value: 12,
|
|
setValueAtTime: function (a, b) {
|
|
console.log(a, b)
|
|
return attack
|
|
}
|
|
}
|
|
// attack = proxy_(attack)
|
|
|
|
DynamicsCompressorNode = {
|
|
name: 'DynamicsCompressorNode',
|
|
threshold: Threshold,
|
|
knee: knee,
|
|
ratio: ratio,
|
|
reduction: 0,
|
|
attack: attack,
|
|
// release: Threshold,
|
|
// ratio: Threshold,
|
|
connect: function (a) {
|
|
if (a === undefined) {
|
|
throw new Error('A parameter must be')
|
|
}
|
|
}
|
|
}
|
|
// DynamicsCompressorNode = proxy_(DynamicsCompressorNode)
|
|
|
|
AudioDestinationNode = {
|
|
name: 'AudioDestinationNode',
|
|
}
|
|
// AudioDestinationNode = proxy_(AudioDestinationNode)
|
|
|
|
OfflineAudioContexts = {
|
|
name: 'OfflineAudioContext',
|
|
createOscillator: function () {
|
|
console.log('createOscillator')
|
|
return OscillatorNode
|
|
},
|
|
currentTime: 0,
|
|
createDynamicsCompressor: function () {
|
|
return DynamicsCompressorNode
|
|
},
|
|
destination: AudioDestinationNode
|
|
}
|
|
// OfflineAudioContexts = proxy_(OfflineAudioContexts)
|
|
|
|
|
|
window_new = {
|
|
SpeechSynthesisUtterance: function () {
|
|
},
|
|
XMLHttpRequest: function () {
|
|
},
|
|
SourceBuffer: function () {
|
|
},
|
|
OfflineAudioContext: function () {
|
|
return OfflineAudioContexts
|
|
},
|
|
addEvenetListener: function () {
|
|
},
|
|
MediaEncryptedEvent: function () {
|
|
},
|
|
Path2D: function () {
|
|
},
|
|
SVGGraphicsElement: function () {
|
|
},
|
|
CDATASection: function () {
|
|
},
|
|
PerformancePaintTiming: function () {
|
|
},
|
|
outerHeighten: function () {
|
|
},
|
|
sessionStorage: {},
|
|
Math: Math,
|
|
DOMParser: function () {
|
|
},
|
|
HTMLFrameSetElement: function () {
|
|
},
|
|
clearInterval: function clearInterval() {
|
|
},
|
|
clearTimeout: function clearTimeout() {
|
|
},
|
|
clientInformation: navigator,
|
|
close: function close() {
|
|
},
|
|
closed: false,
|
|
confirm: function confirm() {
|
|
},
|
|
cookieStore: {onchange: null},
|
|
createImageBitmap: function createImageBitmap() {
|
|
},
|
|
credentialless: false,
|
|
crossOriginIsolated: false,
|
|
customElements: {},
|
|
devicePixelRatio: 1.25,
|
|
document: document,
|
|
external: {},
|
|
frameElement: {},
|
|
frames: window,
|
|
getComputedStyle: function getComputedStyle() {
|
|
},
|
|
getScreenDetails: function getScreenDetails() {
|
|
},
|
|
getSelection: function getSelection() {
|
|
},
|
|
history: {length: 10, scrollRestoration: 'auto', stat: null},
|
|
indexedDB: {},
|
|
innerHeight: 0,
|
|
innerWidth: 0,
|
|
isSecureContext: true,
|
|
launchQueue: {},
|
|
length: 0,
|
|
location: location,
|
|
locationbar: {visible: true},
|
|
matchMedia: function matchMedia() {
|
|
},
|
|
menubar: {visible: true},
|
|
name: "zhipinFrame",
|
|
navigator: navigator,
|
|
onabort: null,
|
|
onafterprint: null,
|
|
onanimationend: null,
|
|
onanimationiteration: null,
|
|
onanimationstart: null,
|
|
onappinstalled: null,
|
|
onauxclick: null,
|
|
onbeforeinput: null,
|
|
onbeforeinstallprompt: null,
|
|
onbeforematch: null,
|
|
onbeforeprint: null,
|
|
onbeforetoggle: null,
|
|
onbeforeunload: null,
|
|
onbeforexrselect: null,
|
|
onblur: null,
|
|
oncancel: null,
|
|
oncanplay: null,
|
|
oncanplaythrough: null,
|
|
onchange: null,
|
|
onclick: null,
|
|
onclose: null,
|
|
oncontentvisibilityautostatechange: null,
|
|
oncontextlost: null,
|
|
oncontextmenu: null,
|
|
oncontextrestored: null,
|
|
oncuechange: null,
|
|
ondblclick: null,
|
|
ondevicemotion: null,
|
|
ondeviceorientation: null,
|
|
ondeviceorientationabsolute: null,
|
|
ondrag: null,
|
|
ondragend: null,
|
|
ondragenter: null,
|
|
ondragleave: null,
|
|
ondragover: null,
|
|
ondragstart: null,
|
|
ondrop: null,
|
|
ondurationchange: null,
|
|
onemptied: null,
|
|
onended: null,
|
|
onerror: null,
|
|
onfocus: null,
|
|
onformdata: null,
|
|
ongotpointercapture: null,
|
|
onhashchange: null,
|
|
oninput: null,
|
|
oninvalid: null,
|
|
onkeydown: null,
|
|
onkeypress: null,
|
|
onkeyup: null,
|
|
onlanguagechange: null,
|
|
onload: null,
|
|
onloadeddata: null,
|
|
onloadedmetadata: null,
|
|
onloadstart: null,
|
|
onlostpointercapture: null,
|
|
onmessage: null,
|
|
onmessageerror: null,
|
|
onmousedown: null,
|
|
onmouseenter: null,
|
|
onmouseleave: null,
|
|
onmousemove: null,
|
|
onmouseout: null,
|
|
onmouseover: null,
|
|
onmouseup: null,
|
|
onmousewheel: null,
|
|
onoffline: null,
|
|
ononline: null,
|
|
onpagehide: null,
|
|
onpageshow: null,
|
|
onpause: null,
|
|
onplay: null,
|
|
onplaying: null,
|
|
onpointercancel: null,
|
|
onpointerdown: null,
|
|
onpointerenter: null,
|
|
onpointerleave: null,
|
|
onpointermove: null,
|
|
onpointerout: null,
|
|
onpointerover: null,
|
|
onpointerrawupdate: null,
|
|
onpointerup: null,
|
|
onpopstate: null,
|
|
onprogress: null,
|
|
onratechange: null,
|
|
onrejectionhandled: null,
|
|
onreset: null,
|
|
onresize: null,
|
|
onscroll: null,
|
|
onscrollend: null,
|
|
onsearch: null,
|
|
onsecuritypolicyviolation: null,
|
|
onseeked: null,
|
|
onseeking: null,
|
|
onselect: null,
|
|
onselectionchange: null,
|
|
onselectstart: null,
|
|
onslotchange: null,
|
|
onstalled: null,
|
|
onstorage: null,
|
|
onsubmit: null,
|
|
onsuspend: null,
|
|
ontimeupdate: null,
|
|
ontoggle: null,
|
|
ontransitioncancel: null,
|
|
ontransitionend: null,
|
|
ontransitionrun: null,
|
|
ontransitionstart: null,
|
|
onunhandledrejection: null,
|
|
onunload: null,
|
|
onvolumechange: null,
|
|
onwaiting: null,
|
|
onwebkitanimationend: null,
|
|
onwebkitanimationiteration: null,
|
|
onwebkitanimationstart: null,
|
|
onwebkittransitionend: null,
|
|
onwheel: null,
|
|
open: function open() {
|
|
},
|
|
openDatabase: function openDatabase() {
|
|
},
|
|
opener: null,
|
|
origin: "http:/www.zhipin.com",
|
|
originAgentCluster: false,
|
|
outerHeight: 864,
|
|
outerWidth: 1536,
|
|
pageXOffset: 0,
|
|
pageYOffset: 0,
|
|
parent: window,
|
|
personalbar: {visibl: true},
|
|
postMessage: function postMessage() {
|
|
},
|
|
prompt: function prompt() {
|
|
},
|
|
queryLocalFonts: function queryLocalFonts() {
|
|
},
|
|
queueMicrotask: function queueMicrotask() {
|
|
},
|
|
releaseEvents: function releaseEvents() {
|
|
},
|
|
reportError: function reportError() {
|
|
},
|
|
requestAnimationFrame: function requestAnimationFrame() {
|
|
},
|
|
requestIdleCallback: function requestIdleCallback() {
|
|
},
|
|
resizeBy: function resizeBy() {
|
|
},
|
|
resizeTo: function resizeTo() {
|
|
},
|
|
scheduler: {},
|
|
screen: {availWidt: 536, availHeigh: 64, widt: 536, heigh: 64, colorDept: 4},
|
|
screenLeft: 0,
|
|
screenTop: 0,
|
|
screenX: 0,
|
|
screenY: 0,
|
|
scroll: function scroll() {
|
|
},
|
|
scrollBy: function scrollBy() {
|
|
},
|
|
scrollTo: function scrollTo() {
|
|
},
|
|
scrollX: 0,
|
|
scrollY: 0,
|
|
scrollbars: {visibl: true},
|
|
showDirectoryPicker: function showDirectoryPicker() {
|
|
},
|
|
showOpenFilePicker: function showOpenFilePicker() {
|
|
},
|
|
showSaveFilePicker: function showSaveFilePicker() {
|
|
},
|
|
speechSynthesis: {pendin: false, speakin: false, pause: false, onvoiceschange: null,},
|
|
status: "",
|
|
statusbar: {visible: true},
|
|
stop: function stop() {
|
|
},
|
|
structuredClone: function structuredClone() {
|
|
},
|
|
styleMedia: {type: 'screen'},
|
|
toolbar: {visible: true},
|
|
trustedTypes: {},
|
|
window: window,
|
|
}
|
|
window_new.top = window_new;
|
|
Object.assign(window, window_new);
|
|
window.top = window_new;
|
|
|
|
|
|
var Object_toString = Object.prototype.toString;
|
|
Object.prototype.toString = function () {
|
|
let temp = Object_toString.call(this, arguments);
|
|
|
|
if (temp === '[object global]' || temp === '[object Window]') {
|
|
return '[object Window]'
|
|
} else if (this.constructor.name === 'String') {
|
|
return this.valueOf()
|
|
}
|
|
return temp
|
|
}
|
|
|
|
var Function_toString = Function.prototype.toString;
|
|
Function.prototype.toString = function () {
|
|
let temp = Function_toString.call(this, arguments);
|
|
if (this.name === 'Window') {
|
|
return 'function window() { [native code] }'
|
|
} else {
|
|
return temp
|
|
}
|
|
}
|
|
|
|
CanvasRenderingContext2D = {
|
|
name: '2d',
|
|
fillRect: function (a, b, c, d) {
|
|
return undefined
|
|
},
|
|
fillText: function (a, b, c, d) {
|
|
return undefined
|
|
}
|
|
}
|
|
CanvasRenderingContext2D = new Proxy(CanvasRenderingContext2D, {
|
|
set(target, property, value) {
|
|
if (value === 'tencent') {
|
|
return
|
|
}
|
|
// console.table([{"类型": 'set', '调用者': target, "调用属性": property, '设置值': value}])
|
|
return Reflect.set(...arguments)
|
|
},
|
|
get(target, property, receiver) {
|
|
// console.table([{"类型": 'get', '调用者': target, "调用属性": property, '获取值': target[property]}])
|
|
return target[property]
|
|
}
|
|
})
|
|
canvas = {
|
|
getContext: function (arg) {
|
|
if (arg === '2d') {
|
|
return CanvasRenderingContext2D
|
|
}
|
|
console.log(arg)
|
|
},
|
|
toDataURL: function () {
|
|
return 'data:image/png;base64,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'
|
|
}
|
|
}
|
|
// canvas = proxy_(canvas)
|
|
createElement = function (arg) {
|
|
if (arg === 'canvas') {
|
|
return canvas
|
|
}
|
|
console.log(arg)
|
|
}
|
|
document.createElement = createElement
|
|
|
|
|
|
require('./jssss')
|
|
|
|
function r(t, n) {
|
|
(new Date).getTime();
|
|
return encodeURIComponent(
|
|
new window['ABC']().z(t, parseInt(n) + 60 * (480 + (new Date).getTimezoneOffset()) * 1e3)
|
|
)
|
|
|
|
}
|
|
|
|
console.log(r('O0g/w1ePRcDnxW8L4GMvtxKUqEEjiTw9Qee2h3AO23A=', '1691716083134'))
|