所有的逆向都是先分析,所以我们先分析,哈哈
先看一下成品

1,明确需要逆向的参数,以及所在位置

2,定位逆向参数的位置,通过关键词搜索

3,经过这层分析,h5st是由请求载荷里面的其他参数生成的,哈哈,这个相信大家还是能分析出来的

4,调用类里面的方法

5,现在需要定位到window.PSign

6,接着上一步分析

7,现在需要找到new window.ParamsSign,思路是一环扣一环的,兄弟们

8,明确逆向的思路,就是通过补环境,我们先激活逆向值接口,把这个new的代码扣下来,然后有一个小细节就是里面的参数也要带的

9,从网页上扣下代码,然后调用混淆文件的函数,得到h5st

10,这个是需要传入的参数

11,
window = globalThis; // 这里挂载的小window需要去进行原型绑定
window.window = window.top = window.self = window;
!(() => {
const origin_log = console.log;
;
// const origin_log = function () {};
logToConsole = function () {
return origin_log(...arguments)
// return
}
})();
watch = function (obj, name) {
return new Proxy(obj, {
get(target, p, receiver) {
// 过滤没用的信息,不进行打印
if (name)
if (p === "Math" || p === "Symbol" || p === "Proxy" || p === "Promise" || p === "Array" || p === "isNaN" || p === "encodeURI" || p === "Uint8Array" || p.toString().indexOf("Symbol(") != -1 || p === "_element") {
var val = Reflect.get(...arguments);
return val
} else {
var val = Reflect.get(...arguments);
const lst = []
for (let i = 0; i < p.length; i++) {
lst.push(p.charCodeAt(i))
}
if (typeof val === 'function') {
logToConsole(`取值: ${name}.${p} => function`);
} else {
logToConsole(`取值: ${name}.${p} =>`, val);
}
return val
}
},
set(target, p, value, receiver) {
var val = Reflect.set(...arguments)
if (typeof value === 'function') {
logToConsole(`设置值:${name}.${p} => function`,);
} else {
logToConsole(`设置值:${name}.${p} =>`, value);
if (name === '环境数组' && p === '4') {
debugger
}
}
return val
},
has(target, key) {
logToConsole(`检查属性存在性: ${name}.${key.toString()}`);
return key in target;
},
ownKeys(target) {
logToConsole(`ownKeys检测: ${name}`);
if (name === 'span_domtokenlist') {
debugger
}
if (name === 'window') {
const keys = [
"Object",
"Function",
"Array",
"Number",
"parseFloat",
"parseInt",
"Infinity",
"NaN",
"undefined",
"Boolean",
"String",
"Symbol",
"Date",
"Promise",
"RegExp",
"Error",
"AggregateError",
"EvalError",
"RangeError",
"ReferenceError",
"SyntaxError",
"TypeError",
"URIError",
"globalThis",
"JSON",
"Math",
"Intl",
"ArrayBuffer",
"Atomics",
"Uint8Array",
"Int8Array",
"Uint16Array",
"Int16Array",
"Uint32Array",
"Int32Array",
"BigUint64Array",
"BigInt64Array",
"Uint8ClampedArray",
"Float32Array",
"Float64Array",
"DataView",
"Map",
"BigInt",
"Set",
"WeakMap",
"WeakSet",
"Proxy",
"Reflect",
"FinalizationRegistry",
"WeakRef",
"decodeURI",
"decodeURIComponent",
"encodeURI",
"encodeURIComponent",
"escape",
"unescape",
"eval",
"isFinite",
"isNaN",
"console",
"Option",
"Image",
"Audio",
"webkitURL",
"webkitRTCPeerConnection",
"webkitMediaStream",
"WebKitMutationObserver",
"WebKitCSSMatrix",
"XSLTProcessor",
"XPathResult",
"XPathExpression",
"XPathEvaluator",
"XMLSerializer",
"XMLHttpRequestUpload",
"XMLHttpRequestEventTarget",
"XMLHttpRequest",
"XMLDocument",
"WritableStreamDefaultWriter",
"WritableStreamDefaultController",
"WritableStream",
"Worker",
"WindowControlsOverlayGeometryChangeEvent",
"WindowControlsOverlay",
"Window",
"WheelEvent",
"WebSocket",
"WebGLVertexArrayObject",
"WebGLUniformLocation",
"WebGLTransformFeedback",
"WebGLTexture",
"WebGLSync",
"WebGLShaderPrecisionFormat",
"WebGLShader",
"WebGLSampler",
"WebGLRenderingContext",
"WebGLRenderbuffer",
"WebGLQuery",
"WebGLProgram",
"WebGLObject",
"WebGLFramebuffer",
"WebGLContextEvent",
"WebGLBuffer",
"WebGLActiveInfo",
"WebGL2RenderingContext",
"WaveShaperNode",
"VisualViewport",
"VisibilityStateEntry",
"VirtualKeyboardGeometryChangeEvent",
"ViewTransitionTypeSet",
"ViewTransition",
"ViewTimeline",
"VideoPlaybackQuality",
"VideoFrame",
"VideoColorSpace",
"ValidityState",
"VTTCue",
"UserActivation",
"URLSearchParams",
"URLPattern",
"URL",
"UIEvent",
"TrustedTypePolicyFactory",
"TrustedTypePolicy",
"TrustedScriptURL",
"TrustedScript",
"TrustedHTML",
"TreeWalker",
"TransitionEvent",
"TransformStreamDefaultController",
"TransformStream",
"TrackEvent",
"TouchList",
"TouchEvent",
"Touch",
"ToggleEvent",
"TimeRanges",
"TextUpdateEvent",
"TextTrackList",
"TextTrackCueList",
"TextTrackCue",
"TextTrack",
"TextMetrics",
"TextFormatUpdateEvent",
"TextFormat",
"TextEvent",
"TextEncoderStream",
"TextEncoder",
"TextDecoderStream",
"TextDecoder",
"Text",
"TaskSignal",
"TaskPriorityChangeEvent",
"TaskController",
"TaskAttributionTiming",
"SyncManager",
"SubmitEvent",
"StyleSheetList",
"StyleSheet",
"StylePropertyMapReadOnly",
"StylePropertyMap",
"StorageEvent",
"Storage",
"StereoPannerNode",
"StaticRange",
"SourceBufferList",
"SourceBuffer",
"ShadowRoot",
"Selection",
"SecurityPolicyViolationEvent",
"ScrollTimeline",
"ScriptProcessorNode",
"ScreenOrientation",
"Screen",
"Scheduling",
"Scheduler",
"SVGViewElement",
"SVGUseElement",
"SVGUnitTypes",
"SVGTransformList",
"SVGTransform",
"SVGTitleElement",
"SVGTextPositioningElement",
"SVGTextPathElement",
"SVGTextElement",
"SVGTextContentElement",
"SVGTSpanElement",
"SVGSymbolElement",
"SVGSwitchElement",
"SVGStyleElement",
"SVGStringList",
"SVGStopElement",
"SVGSetElement",
"SVGScriptElement",
"SVGSVGElement",
"SVGRectElement",
"SVGRect",
"SVGRadialGradientElement",
"SVGPreserveAspectRatio",
"SVGPolylineElement",
"SVGPolygonElement",
"SVGPointList",
"SVGPoint",
"SVGPatternElement",
"SVGPathElement",
"SVGNumberList",
"SVGNumber",
"SVGMetadataElement",
"SVGMatrix",
"SVGMaskElement",
"SVGMarkerElement",
"SVGMPathElement",
"SVGLinearGradientElement",
"SVGLineElement",
"SVGLengthList",
"SVGLength",
"SVGImageElement",
"SVGGraphicsElement",
"SVGGradientElement",
"SVGGeometryElement",
"SVGGElement",
"SVGForeignObjectElement",
"SVGFilterElement",
"SVGFETurbulenceElement",
"SVGFETileElement",
"SVGFESpotLightElement",
"SVGFESpecularLightingElement",
"SVGFEPointLightElement",
"SVGFEOffsetElement",
"SVGFEMorphologyElement",
"SVGFEMergeNodeElement",
"SVGFEMergeElement",
"SVGFEImageElement",
"SVGFEGaussianBlurElement",
"SVGFEFuncRElement",
"SVGFEFuncGElement",
"SVGFEFuncBElement",
"SVGFEFuncAElement",
"SVGFEFloodElement",
"SVGFEDropShadowElement",
"SVGFEDistantLightElement",
"SVGFEDisplacementMapElement",
"SVGFEDiffuseLightingElement",
"SVGFEConvolveMatrixElement",
"SVGFECompositeElement",
"SVGFEComponentTransferElement",
"SVGFEColorMatrixElement",
"SVGFEBlendElement",
"SVGEllipseElement",
"SVGElement",
"SVGDescElement",
"SVGDefsElement",
"SVGComponentTransferFunctionElement",
"SVGClipPathElement",
"SVGCircleElement",
"SVGAnimationElement",
"SVGAnimatedTransformList",
"SVGAnimatedString",
"SVGAnimatedRect",
"SVGAnimatedPreserveAspectRatio",
"SVGAnimatedNumberList",
"SVGAnimatedNumber",
"SVGAnimatedLengthList",
"SVGAnimatedLength",
"SVGAnimatedInteger",
"SVGAnimatedEnumeration",
"SVGAnimatedBoolean",
"SVGAnimatedAngle",
"SVGAnimateTransformElement",
"SVGAnimateMotionElement",
"SVGAnimateElement",
"SVGAngle",
"SVGAElement",
"Response",
"ResizeObserverSize",
"ResizeObserverEntry",
"ResizeObserver",
"Request",
"ReportingObserver",
"ReportBody",
"ReadableStreamDefaultReader",
"ReadableStreamDefaultController",
"ReadableStreamBYOBRequest",
"ReadableStreamBYOBReader",
"ReadableStream",
"ReadableByteStreamController",
"Range",
"RadioNodeList",
"RTCTrackEvent",
"RTCStatsReport",
"RTCSessionDescription",
"RTCSctpTransport",
"RTCRtpTransceiver",
"RTCRtpSender",
"RTCRtpReceiver",
"RTCPeerConnectionIceEvent",
"RTCPeerConnectionIceErrorEvent",
"RTCPeerConnection",
"RTCIceTransport",
"RTCIceCandidate",
"RTCErrorEvent",
"RTCError",
"RTCEncodedVideoFrame",
"RTCEncodedAudioFrame",
"RTCDtlsTransport",
"RTCDataChannelEvent",
"RTCDTMFToneChangeEvent",
"RTCDTMFSender",
"RTCCertificate",
"PromiseRejectionEvent",
"ProgressEvent",
"Profiler",
"ProcessingInstruction",
"PopStateEvent",
"PointerEvent",
"PluginArray",
"Plugin",
"PictureInPictureWindow",
"PictureInPictureEvent",
"PeriodicWave",
"PerformanceTiming",
"PerformanceServerTiming",
"PerformanceScriptTiming",
"PerformanceResourceTiming",
"PerformancePaintTiming",
"PerformanceObserverEntryList",
"PerformanceObserver",
"PerformanceNavigationTiming",
"PerformanceNavigation",
"PerformanceMeasure",
"PerformanceMark",
"PerformanceLongTaskTiming",
"PerformanceLongAnimationFrameTiming",
"PerformanceEventTiming",
"PerformanceEntry",
"PerformanceElementTiming",
"Performance",
"Path2D",
"PannerNode",
"PageTransitionEvent",
"OverconstrainedError",
"OscillatorNode",
"OffscreenCanvasRenderingContext2D",
"OffscreenCanvas",
"OfflineAudioContext",
"OfflineAudioCompletionEvent",
"NodeList",
"NodeIterator",
"NodeFilter",
"Node",
"NetworkInformation",
"NavigatorUAData",
"Navigator",
"NavigationTransition",
"NavigationHistoryEntry",
"NavigationDestination",
"NavigationCurrentEntryChangeEvent",
"Navigation",
"NavigateEvent",
"NamedNodeMap",
"MutationRecord",
"MutationObserver",
"MouseEvent",
"MimeTypeArray",
"MimeType",
"MessagePort",
"MessageEvent",
"MessageChannel",
"MediaStreamTrackVideoStats",
"MediaStreamTrackProcessor",
"MediaStreamTrackGenerator",
"MediaStreamTrackEvent",
"MediaStreamTrackAudioStats",
"MediaStreamTrack",
"MediaStreamEvent",
"MediaStreamAudioSourceNode",
"MediaStreamAudioDestinationNode",
"MediaStream",
"MediaSourceHandle",
"MediaSource",
"MediaRecorder",
"MediaQueryListEvent",
"MediaQueryList",
"MediaList",
"MediaError",
"MediaEncryptedEvent",
"MediaElementAudioSourceNode",
"MediaCapabilities",
"MathMLElement",
"Location",
"LayoutShiftAttribution",
"LayoutShift",
"LargestContentfulPaint",
"KeyframeEffect",
"KeyboardEvent",
"IntersectionObserverEntry",
"IntersectionObserver",
"InputEvent",
"InputDeviceInfo",
"InputDeviceCapabilities",
"Ink",
"ImageData",
"ImageCapture",
"ImageBitmapRenderingContext",
"ImageBitmap",
"IdleDeadline",
"IIRFilterNode",
"IDBVersionChangeEvent",
"IDBTransaction",
"IDBRequest",
"IDBOpenDBRequest",
"IDBObjectStore",
"IDBKeyRange",
"IDBIndex",
"IDBFactory",
"IDBDatabase",
"IDBCursorWithValue",
"IDBCursor",
"History",
"HighlightRegistry",
"Highlight",
"Headers",
"HashChangeEvent",
"HTMLVideoElement",
"HTMLUnknownElement",
"HTMLUListElement",
"HTMLTrackElement",
"HTMLTitleElement",
"HTMLTimeElement",
"HTMLTextAreaElement",
"HTMLTemplateElement",
"HTMLTableSectionElement",
"HTMLTableRowElement",
"HTMLTableElement",
"HTMLTableColElement",
"HTMLTableCellElement",
"HTMLTableCaptionElement",
"HTMLStyleElement",
"HTMLSpanElement",
"HTMLSourceElement",
"HTMLSlotElement",
"HTMLSelectElement",
"HTMLScriptElement",
"HTMLQuoteElement",
"HTMLProgressElement",
"HTMLPreElement",
"HTMLPictureElement",
"HTMLParamElement",
"HTMLParagraphElement",
"HTMLOutputElement",
"HTMLOptionsCollection",
"HTMLOptionElement",
"HTMLOptGroupElement",
"HTMLObjectElement",
"HTMLOListElement",
"HTMLModElement",
"HTMLMeterElement",
"HTMLMetaElement",
"HTMLMenuElement",
"HTMLMediaElement",
"HTMLMarqueeElement",
"HTMLMapElement",
"HTMLLinkElement",
"HTMLLegendElement",
"HTMLLabelElement",
"HTMLLIElement",
"HTMLInputElement",
"HTMLImageElement",
"HTMLIFrameElement",
"HTMLHtmlElement",
"HTMLHeadingElement",
"HTMLHeadElement",
"HTMLHRElement",
"HTMLFrameSetElement",
"HTMLFrameElement",
"HTMLFormElement",
"HTMLFormControlsCollection",
"HTMLFontElement",
"HTMLFieldSetElement",
"HTMLEmbedElement",
"HTMLElement",
"HTMLDocument",
"HTMLDivElement",
"HTMLDirectoryElement",
"HTMLDialogElement",
"HTMLDetailsElement",
"HTMLDataListElement",
"HTMLDataElement",
"HTMLDListElement",
"HTMLCollection",
"HTMLCanvasElement",
"HTMLButtonElement",
"HTMLBodyElement",
"HTMLBaseElement",
"HTMLBRElement",
"HTMLAudioElement",
"HTMLAreaElement",
"HTMLAnchorElement",
"HTMLAllCollection",
"GeolocationPositionError",
"GeolocationPosition",
"GeolocationCoordinates",
"Geolocation",
"GamepadHapticActuator",
"GamepadEvent",
"GamepadButton",
"Gamepad",
"GainNode",
"FormDataEvent",
"FormData",
"FontFaceSetLoadEvent",
"FontFace",
"FocusEvent",
"FileReader",
"FileList",
"File",
"FeaturePolicy",
"External",
"EventTarget",
"EventSource",
"EventCounts",
"Event",
"ErrorEvent",
"EncodedVideoChunk",
"EncodedAudioChunk",
"ElementInternals",
"Element",
"EditContext",
"DynamicsCompressorNode",
"DragEvent",
"DocumentType",
"DocumentTimeline",
"DocumentFragment",
"Document",
"DelegatedInkTrailPresenter",
"DelayNode",
"DecompressionStream",
"DataTransferItemList",
"DataTransferItem",
"DataTransfer",
"DOMTokenList",
"DOMStringMap",
"DOMStringList",
"DOMRectReadOnly",
"DOMRectList",
"DOMRect",
"DOMQuad",
"DOMPointReadOnly",
"DOMPoint",
"DOMParser",
"DOMMatrixReadOnly",
"DOMMatrix",
"DOMImplementation",
"DOMException",
"DOMError",
"CustomStateSet",
"CustomEvent",
"CustomElementRegistry",
"Crypto",
"CountQueuingStrategy",
"ConvolverNode",
"ContentVisibilityAutoStateChangeEvent",
"ConstantSourceNode",
"CompressionStream",
"CompositionEvent",
"Comment",
"CloseWatcher",
"CloseEvent",
"ClipboardEvent",
"CharacterData",
"CharacterBoundsUpdateEvent",
"ChannelSplitterNode",
"ChannelMergerNode",
"CanvasRenderingContext2D",
"CanvasPattern",
"CanvasGradient",
"CanvasCaptureMediaStreamTrack",
"CSSVariableReferenceValue",
"CSSUnparsedValue",
"CSSUnitValue",
"CSSTranslate",
"CSSTransition",
"CSSTransformValue",
"CSSTransformComponent",
"CSSSupportsRule",
"CSSStyleValue",
"CSSStyleSheet",
"CSSStyleRule",
"CSSStyleDeclaration",
"CSSStartingStyleRule",
"CSSSkewY",
"CSSSkewX",
"CSSSkew",
"CSSScopeRule",
"CSSScale",
"CSSRuleList",
"CSSRule",
"CSSRotate",
"CSSPropertyRule",
"CSSPositionValue",
"CSSPositionTryRule",
"CSSPositionTryDescriptors",
"CSSPerspective",
"CSSPageRule",
"CSSNumericValue",
"CSSNumericArray",
"CSSNestedDeclarations",
"CSSNamespaceRule",
"CSSMediaRule",
"CSSMatrixComponent",
"CSSMathValue",
"CSSMathSum",
"CSSMathProduct",
"CSSMathNegate",
"CSSMathMin",
"CSSMathMax",
"CSSMathInvert",
"CSSMathClamp",
"CSSLayerStatementRule",
"CSSLayerBlockRule",
"CSSKeywordValue",
"CSSKeyframesRule",
"CSSKeyframeRule",
"CSSImportRule",
"CSSImageValue",
"CSSGroupingRule",
"CSSFontPaletteValuesRule",
"CSSFontFaceRule",
"CSSCounterStyleRule",
"CSSContainerRule",
"CSSConditionRule",
"CSSAnimation",
"CSS",
"CSPViolationReportBody",
"CDATASection",
"ByteLengthQueuingStrategy",
"BrowserCaptureMediaStreamTrack",
"BroadcastChannel",
"BlobEvent",
"Blob",
"BiquadFilterNode",
"BeforeUnloadEvent",
"BeforeInstallPromptEvent",
"BaseAudioContext",
"BarProp",
"AudioWorkletNode",
"AudioSinkInfo",
"AudioScheduledSourceNode",
"AudioProcessingEvent",
"AudioParamMap",
"AudioParam",
"AudioNode",
"AudioListener",
"AudioDestinationNode",
"AudioData",
"AudioContext",
"AudioBufferSourceNode",
"AudioBuffer",
"Attr",
"AnimationTimeline",
"AnimationPlaybackEvent",
"AnimationEvent",
"AnimationEffect",
"Animation",
"AnalyserNode",
"AbstractRange",
"AbortSignal",
"AbortController",
"window",
"self",
"document",
"name",
"location",
"customElements",
"history",
"navigation",
"locationbar",
"menubar",
"personalbar",
"scrollbars",
"statusbar",
"toolbar",
"status",
"closed",
"frames",
"length",
"top",
"opener",
"parent",
"frameElement",
"navigator",
"origin",
"external",
"screen",
"innerWidth",
"innerHeight",
"scrollX",
"pageXOffset",
"scrollY",
"pageYOffset",
"visualViewport",
"screenX",
"screenY",
"outerWidth",
"outerHeight",
"devicePixelRatio",
"event",
"clientInformation",
"offscreenBuffering",
"screenLeft",
"screenTop",
"styleMedia",
"onsearch",
"trustedTypes",
"performance",
"onappinstalled",
"onbeforeinstallprompt",
"crypto",
"indexedDB",
"sessionStorage",
"localStorage",
"onbeforexrselect",
"onabort",
"onbeforeinput",
"onbeforematch",
"onbeforetoggle",
"onblur",
"oncancel",
"oncanplay",
"oncanplaythrough",
"onchange",
"onclick",
"onclose",
"oncontentvisibilityautostatechange",
"oncontextlost",
"oncontextmenu",
"oncontextrestored",
"oncuechange",
"ondblclick",
"ondrag",
"ondragend",
"ondragenter",
"ondragleave",
"ondragover",
"ondragstart",
"ondrop",
"ondurationchange",
"onemptied",
"onended",
"onerror",
"onfocus",
"onformdata",
"oninput",
"oninvalid",
"onkeydown",
"onkeypress",
"onkeyup",
"onload",
"onloadeddata",
"onloadedmetadata",
"onloadstart",
"onmousedown",
"onmouseenter",
"onmouseleave",
"onmousemove",
"onmouseout",
"onmouseover",
"onmouseup",
"onmousewheel",
"onpause",
"onplay",
"onplaying",
"onprogress",
"onratechange",
"onreset",
"onresize",
"onscroll",
"onsecuritypolicyviolation",
"onseeked",
"onseeking",
"onselect",
"onslotchange",
"onstalled",
"onsubmit",
"onsuspend",
"ontimeupdate",
"ontoggle",
"onvolumechange",
"onwaiting",
"onwebkitanimationend",
"onwebkitanimationiteration",
"onwebkitanimationstart",
"onwebkittransitionend",
"onwheel",
"onauxclick",
"ongotpointercapture",
"onlostpointercapture",
"onpointerdown",
"onpointermove",
"onpointerrawupdate",
"onpointerup",
"onpointercancel",
"onpointerover",
"onpointerout",
"onpointerenter",
"onpointerleave",
"onselectstart",
"onselectionchange",
"onanimationend",
"onanimationiteration",
"onanimationstart",
"ontransitionrun",
"ontransitionstart",
"ontransitionend",
"ontransitioncancel",
"onafterprint",
"onbeforeprint",
"onbeforeunload",
"onhashchange",
"onlanguagechange",
"onmessage",
"onmessageerror",
"onoffline",
"ononline",
"onpagehide",
"onpageshow",
"onpopstate",
"onrejectionhandled",
"onstorage",
"onunhandledrejection",
"onunload",
"isSecureContext",
"crossOriginIsolated",
"scheduler",
"alert",
"atob",
"blur",
"btoa",
"cancelAnimationFrame",
"cancelIdleCallback",
"captureEvents",
"clearInterval",
"clearTimeout",
"close",
"confirm",
"createImageBitmap",
"fetch",
"find",
"focus",
"getComputedStyle",
"getSelection",
"matchMedia",
"moveBy",
"moveTo",
"open",
"postMessage",
"print",
"prompt",
"queueMicrotask",
"releaseEvents",
"reportError",
"requestAnimationFrame",
"requestIdleCallback",
"resizeBy",
"resizeTo",
"scroll",
"scrollBy",
"scrollTo",
"setInterval",
"setTimeout",
"stop",
"structuredClone",
"webkitCancelAnimationFrame",
"webkitRequestAnimationFrame",
"Iterator",
"chrome",
"WebAssembly",
"caches",
"cookieStore",
"ondevicemotion",
"ondeviceorientation",
"ondeviceorientationabsolute",
"launchQueue",
"sharedStorage",
"documentPictureInPicture",
"AICreateMonitor",
"AbsoluteOrientationSensor",
"Accelerometer",
"AudioDecoder",
"AudioEncoder",
"AudioWorklet",
"BatteryManager",
"Cache",
"CacheStorage",
"Clipboard",
"ClipboardItem",
"CookieChangeEvent",
"CookieStore",
"CookieStoreManager",
"Credential",
"CredentialsContainer",
"CryptoKey",
"DeviceMotionEvent",
"DeviceMotionEventAcceleration",
"DeviceMotionEventRotationRate",
"DeviceOrientationEvent",
"FederatedCredential",
"GPU",
"GPUAdapter",
"GPUAdapterInfo",
"GPUBindGroup",
"GPUBindGroupLayout",
"GPUBuffer",
"GPUBufferUsage",
"GPUCanvasContext",
"GPUColorWrite",
"GPUCommandBuffer",
"GPUCommandEncoder",
"GPUCompilationInfo",
"GPUCompilationMessage",
"GPUComputePassEncoder",
"GPUComputePipeline",
"GPUDevice",
"GPUDeviceLostInfo",
"GPUError",
"GPUExternalTexture",
"GPUInternalError",
"GPUMapMode",
"GPUOutOfMemoryError",
"GPUPipelineError",
"GPUPipelineLayout",
"GPUQuerySet",
"GPUQueue",
"GPURenderBundle",
"GPURenderBundleEncoder",
"GPURenderPassEncoder",
"GPURenderPipeline",
"GPUSampler",
"GPUShaderModule",
"GPUShaderStage",
"GPUSupportedFeatures",
"GPUSupportedLimits",
"GPUTexture",
"GPUTextureUsage",
"GPUTextureView",
"GPUUncapturedErrorEvent",
"GPUValidationError",
"GravitySensor",
"Gyroscope",
"IdleDetector",
"ImageDecoder",
"ImageTrack",
"ImageTrackList",
"Keyboard",
"KeyboardLayoutMap",
"LinearAccelerationSensor",
"MIDIAccess",
"MIDIConnectionEvent",
"MIDIInput",
"MIDIInputMap",
"MIDIMessageEvent",
"MIDIOutput",
"MIDIOutputMap",
"MIDIPort",
"MediaDeviceInfo",
"MediaDevices",
"MediaKeyMessageEvent",
"MediaKeySession",
"MediaKeyStatusMap",
"MediaKeySystemAccess",
"MediaKeys",
"NavigationPreloadManager",
"NavigatorManagedData",
"OrientationSensor",
"PasswordCredential",
"ProtectedAudience",
"RelativeOrientationSensor",
"ScreenDetailed",
"ScreenDetails",
"Sensor",
"SensorErrorEvent",
"ServiceWorker",
"ServiceWorkerContainer",
"ServiceWorkerRegistration",
"StorageManager",
"SubtleCrypto",
"VideoDecoder",
"VideoEncoder",
"VirtualKeyboard",
"WGSLLanguageFeatures",
"WebTransport",
"WebTransportBidirectionalStream",
"WebTransportDatagramDuplexStream",
"WebTransportError",
"Worklet",
"XRDOMOverlayState",
"XRLayer",
"XRWebGLBinding",
"AuthenticatorAssertionResponse",
"AuthenticatorAttestationResponse",
"AuthenticatorResponse",
"PublicKeyCredential",
"Bluetooth",
"BluetoothCharacteristicProperties",
"BluetoothDevice",
"BluetoothRemoteGATTCharacteristic",
"BluetoothRemoteGATTDescriptor",
"BluetoothRemoteGATTServer",
"BluetoothRemoteGATTService",
"CaptureController",
"DevicePosture",
"DocumentPictureInPicture",
"EyeDropper",
"FileSystemDirectoryHandle",
"FileSystemFileHandle",
"FileSystemHandle",
"FileSystemWritableFileStream",
"FileSystemObserver",
"FontData",
"FragmentDirective",
"HID",
"HIDConnectionEvent",
"HIDDevice",
"HIDInputReportEvent",
"IdentityCredential",
"IdentityProvider",
"IdentityCredentialError",
"LaunchParams",
"LaunchQueue",
"Lock",
"LockManager",
"NavigatorLogin",
"NotRestoredReasonDetails",
"NotRestoredReasons",
"OTPCredential",
"PaymentAddress",
"PaymentRequest",
"PaymentRequestUpdateEvent",
"PaymentResponse",
"PaymentManager",
"PaymentMethodChangeEvent",
"Presentation",
"PresentationAvailability",
"PresentationConnection",
"PresentationConnectionAvailableEvent",
"PresentationConnectionCloseEvent",
"PresentationConnectionList",
"PresentationReceiver",
"PresentationRequest",
"PressureObserver",
"PressureRecord",
"Serial",
"SerialPort",
"StorageBucket",
"StorageBucketManager",
"USB",
"USBAlternateInterface",
"USBConfiguration",
"USBConnectionEvent",
"USBDevice",
"USBEndpoint",
"USBInTransferResult",
"USBInterface",
"USBIsochronousInTransferPacket",
"USBIsochronousInTransferResult",
"USBIsochronousOutTransferPacket",
"USBIsochronousOutTransferResult",
"USBOutTransferResult",
"WakeLock",
"WakeLockSentinel",
"XRAnchor",
"XRAnchorSet",
"XRBoundedReferenceSpace",
"XRCPUDepthInformation",
"XRCamera",
"XRDepthInformation",
"XRFrame",
"XRHitTestResult",
"XRHitTestSource",
"XRInputSource",
"XRInputSourceArray",
"XRInputSourceEvent",
"XRInputSourcesChangeEvent",
"XRLightEstimate",
"XRLightProbe",
"XRPose",
"XRRay",
"XRReferenceSpace",
"XRReferenceSpaceEvent",
"XRRenderState",
"XRRigidTransform",
"XRSession",
"XRSessionEvent",
"XRSpace",
"XRSystem",
"XRTransientInputHitTestResult",
"XRTransientInputHitTestSource",
"XRView",
"XRViewerPose",
"XRViewport",
"XRWebGLDepthInformation",
"XRWebGLLayer",
"XRHand",
"XRJointPose",
"XRJointSpace",
"getScreenDetails",
"queryLocalFonts",
"showDirectoryPicker",
"showOpenFilePicker",
"showSaveFilePicker",
"originAgentCluster",
"onpageswap",
"onpagereveal",
"credentialless",
"fence",
"speechSynthesis",
"onscrollend",
"onscrollsnapchange",
"onscrollsnapchanging",
"BackgroundFetchManager",
"BackgroundFetchRecord",
"BackgroundFetchRegistration",
"BluetoothUUID",
"CSSMarginRule",
"CSSViewTransitionRule",
"CaretPosition",
"ChapterInformation",
"CropTarget",
"DocumentPictureInPictureEvent",
"Fence",
"FencedFrameConfig",
"HTMLFencedFrameElement",
"MediaMetadata",
"MediaSession",
"NavigationActivation",
"Notification",
"PageRevealEvent",
"PageSwapEvent",
"PeriodicSyncManager",
"PermissionStatus",
"Permissions",
"PushManager",
"PushSubscription",
"PushSubscriptionOptions",
"RTCDataChannel",
"RemotePlayback",
"RestrictionTarget",
"SharedStorage",
"SharedStorageWorklet",
"SharedWorker",
"SnapEvent",
"SpeechSynthesis",
"SpeechSynthesisErrorEvent",
"SpeechSynthesisEvent",
"SpeechSynthesisUtterance",
"SpeechSynthesisVoice",
"WebSocketError",
"WebSocketStream",
"webkitSpeechGrammar",
"webkitSpeechGrammarList",
"webkitSpeechRecognition",
"webkitSpeechRecognitionError",
"webkitSpeechRecognitionEvent",
"webkitRequestFileSystem",
"webkitResolveLocalFileSystemURL",
"PC_ITEM_CONFIG",
"dra",
"customPointEvent",
"_risk_xhr",
"__intercept__fetch__",
"atobFill",
"riskHandlerUtil",
"ParamsSign",
"__core-js_shared__",
"regeneratorRuntime",
"callbackName",
"ajaxCount",
"__JDWEBSIGNHELPER_$DATA__",
"PSign",
"SHA256",
"bp_bizid",
"_0x26e2b7",
"_riskFpMode",
"jdtRiskContext",
"collectConfig",
"jdtRiskUtil",
"jdtRiskEncryptUtil",
"JdtRiskFingerPrint",
"jdtRiskCookieManager",
"jdtLocalStorageManager",
"jdtRiskStorageManager",
"TDEnvCollector",
"__getTkResult",
"_0x37f5",
"__callbackWrapper",
"reportLog",
"_0x1d73",
"_globalState",
"getJsToken",
"getJdEid",
"pageConfig",
"is_sort_black_list",
"jump_mobile",
"apiHost",
"commonAppId",
"preloadArray",
"seajsConfig",
"login",
"regist",
"createCookie",
"readCookie",
"addToFavorite",
"TrimPath",
"$",
"jQuery",
"seajs",
"define",
"EventEmitterPcItem",
"itemEventBus",
"listenTabVisibileReport",
"totouchbate",
"hashTag",
"href",
"_0x3db2",
"_0x3575",
"ParamsSignMain"
]
if (!keys.includes('$jsDebugIsRegistered')) {
keys.push('$jsDebugIsRegistered');
}
return keys
}
if (name === 'document') {
return [
"location"
]
}
if (name === 'window' || name === 'document') debugger;
return Reflect.ownKeys(...arguments)
}
})
}
const safeFunction = (function () {
let initialized = false;
let myFunction_toString_symbol;
const set_native = function set_native(func, key, value) {
Object.defineProperty(func, key, {
"enumerable": false,
"configurable": true,
"writable": true,
"value": value
});
};
return function safeFunction(func) {
if (!initialized) {
Function.prototype.$call = Function.prototype.call;
const $toString = Function.toString;
myFunction_toString_symbol = Symbol('functionToString');
const myToString = function myToString() {
return typeof this === 'function' && this[myFunction_toString_symbol] || $toString.$call(this);
};
delete Function.prototype.toString;
set_native(Function.prototype, "toString", myToString);
set_native(Function.prototype.toString, myFunction_toString_symbol, "function toString() { [native code] }");
initialized = true;
}
// 避免重复添加
if (!func.hasOwnProperty(myFunction_toString_symbol)) {
set_native(func, myFunction_toString_symbol, `function ${func.name || ''}() { [native code] }`);
}
return func;
};
})();
const CONSTRUCTOR_TOKEN = "constructor_token";
// 参数:1.构造函数名 2.是否启用严格模式 3.构造函数属性列表 4.构造函数原型方法 5.继承的构造函数名(如果到object则不写或置空 {} )
function createConstructor(constructorName, enableStrictMode, propertiesList = [], prototypeMethods = {}, parentConstructorName = null) {
const instancesData = {};
// 创建有名称的构造函数
const constructorFunction = function (element, propertySetter, validationToken) {
// 验证逻辑
if (enableStrictMode && !(validationToken && validationToken === CONSTRUCTOR_TOKEN)) {
throw new Error("Illegal constructor");
}
if (parentConstructorName && window[parentConstructorName]) {
window[parentConstructorName].call(this, element, null, CONSTRUCTOR_TOKEN);
}
if (propertySetter && typeof propertySetter === "function") {
propertySetter(this);
}
const instanceProperties = element && typeof element === "object" ? {...element} : {};
this._element = Symbol('_element');
instancesData[this._element] = instanceProperties;
if (element && typeof element === "object") {
Object.keys(element).forEach(key => {
if (!this[key]) {
this[key] = element[key];
}
});
}
// 修改 propertiesList 格式,支持指定属性所属的类
propertiesList.forEach(prop => {
if (prop.name && 'value' in prop) {
// 如果指定了 targetClass,则尝试在指定的类上设置属性
let targetPrototype = constructorFunction.prototype;
if (prop.targetClass && window[prop.targetClass]) {
targetPrototype = window[prop.targetClass].prototype;
}
Object.defineProperty(targetPrototype, prop.name, {
value: prop.value,
writable: prop.writable !== undefined ? prop.writable : false,
enumerable: prop.enumerable !== undefined ? prop.enumerable : true,
configurable: prop.configurable !== undefined ? prop.configurable : true
});
}
});
};
// 设置函数名
Object.defineProperty(constructorFunction, 'name', {
value: constructorName,
writable: false,
enumerable: false,
configurable: true
});
// 设置继承关系
if (parentConstructorName && window[parentConstructorName]) {
constructorFunction.prototype = Object.create(window[parentConstructorName].prototype);
constructorFunction.prototype.constructor = constructorFunction;
Object.setPrototypeOf(constructorFunction, window[parentConstructorName]);
}
// 设置toStringTag
Object.defineProperty(constructorFunction.prototype, Symbol.toStringTag, {
value: constructorName,
writable: false,
enumerable: false,
configurable: true
});
// 添加原型方法
Object.keys(prototypeMethods).forEach(methodName => {
constructorFunction.prototype[methodName] = prototypeMethods[methodName];
if (typeof constructorFunction.prototype[methodName] === "function") {
safeFunction(constructorFunction.prototype[methodName]);
}
});
// 保护构造函数
safeFunction(constructorFunction);
// 将构造函数挂载到全局对象
window[constructorName] = constructorFunction;
return constructorFunction;
}
// 补环境的代码
// 监控
window = watch(window, "window")
12,这个是补的环境
// EventTarget
createConstructor("EventTarget",true,[],{},"")
// Window
createConstructor("Window",true,[],{},"EventTarget")
Object.setPrototypeOf(window, Window.prototype)
// document
createConstructor("Node",true,[],{},"EventTarget")
createConstructor("Element",true,[],{},"Node")
createConstructor("HTMLElement",true,[],{},"Element")
createConstructor("HTMLScriptElement",true,[],{},"HTMLElement")
createConstructor("HTMLHeadElement",true,[],{},"HTMLElement")
createConstructor("HTMLCanvasElement",true,[],{},"HTMLElement")
createConstructor("HTMLCanvasElement",true,[],{},"HTMLElement")
createConstructor("Document",true,[],{
createElement:function(ele){
console.log("Document createElement ->",ele)
if(ele === 'script'){
return watch(new HTMLScriptElement({
parentNode:watch(new HTMLHeadElement({
removeChild:function (){}
},null,CONSTRUCTOR_TOKEN),"script标签的父节点")
},null,CONSTRUCTOR_TOKEN),"document.script")
}
if(ele === 'canvas'){
return watch(new HTMLCanvasElement({
getContext:function(){
return watch(new HTMLCanvasElement(null,null,CONSTRUCTOR_TOKEN),"canvas标签")
}
},null,CONSTRUCTOR_TOKEN),"document.canvas")
}
},
querySelector:function(){},
getElementsByTagName:function(tag_name){
console.log("document getElementsByTagName ->",tag_name)
},
documentElement:function (){},
createEvent:function(event){
console.log("document createEvent ->",event)
}
},"Node")
createConstructor("HTMLDocument",true,[],{},"Document")
// HTMLAllCollection
createConstructor("HTMLAllCollection",true,[],{},"")
window.document = watch(new HTMLDocument(
{
all:watch(new HTMLAllCollection(null,null,CONSTRUCTOR_TOKEN),"window.document.all"),
cookie:"__jdu=1747387851305559880516; shshshfpa=c6e0df72-0a1f-b0f8-1d3a-1c5725122fc9-1747387852; shshshfpx=c6e0df72-0a1f-b0f8-1d3a-1c5725122fc9-1747387852; jcap_dvzw_fp=ewtUcdLDbQfOmucHGJwbwNNhEDVVQAMu7Q0zYzFFZIHfSbeLAtHuF4DSq8uw9eRhJQ2i7yKLpt3c4KLFhCYN1A==; commonAddress=0; regionAddress=1%2C72%2C55674%2C0; whwswswws=; pt_st=1_e7-J0MNwG4VCN2AWtKfA7LMJtURjMiotKY7jvWYpdhSe1pb9fK7gBeVRjcaLuh2nVln-j_JhHtatANcGtl1Za6CPuZ0UBtEjuMHkVXqknXGYMINXB-FTcR4psQBzCurCi2f85EBwmbUqZPyNSwBBEW4HSMQ9SL8U2Hsej52qc49byIrLolcoH8NkU1lchGsFCLqJHHdwgzEgGb6f7ynzd4w2p1OUBGs4_78P6jp*; pinId=w4UcBdz9wmKnh8_Cn7upBQ; pin=jd_ZgnTIhmGpuux; unick=44465xtg3019r6; _tp=DAkSuZbeZ0f3en2J%2FUzGsA%3D%3D; _pst=jd_ZgnTIhmGpuux; mt_xid=V2_52007VwMUV1taW1wWTRleBGMHFlpUUVNeH04pDAFgUEcFX1tOWBdOHUAAMFcTTlRaVQ4DHB5YBWcBFAFdWQdcL0oYXwF7AxFOX1lDWh9CGFQOYwEiUG1YYlMZQB5fBGUGEFdYWlFaGkAQVARXBhNbWw%3D%3D; areaId=19; __jdv=76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_522c256d6f0e49709643c126e0d4945d|1767777095797; mba_muid=1747387851305559880516; TrackID=1f33YImE4dO1BH--Qz-T7RWwHI0o2jsJ9K-vXMEPpNd2yhphKl2rjWFgZEBoVEH9EJF0VfmCOGVJDfnhq-qtBqGbRMQDQ8SzAVRSVWgrUyQ8; light_key=AASBKE7rOxgWQziEhC_QY6yavBzkhxVGdK-_2_rrfDgYZ88HbRAluSP0oVbzFdmuOVQ_AqAE; unpl=JF8EAMhnNSttDEhTURJVEkdAG15cW1QKTkRWPTVQVg4MT1ADHgNMRUN7XlVdWhRKFx9ubhRUXVNKUA4bBCsSEXteXVdZDEsWC2tXVgQFDQ8VXURJQlZAFDNVCV9dSRZRZjJWBFtdT1xWSAYYRRMfDlAKDlhCR1FpMjVkXlh7VAQrAh0XFklUUldZCEkWB2tjDV1UWU9UAisDKxUge21UXV4KSBAzblcEZB8MF1wAHQIZE11LW1FYXwFNHgdvZQRQWVxDXQwaBhsVIEptVw; __jdc=143920055; cid=9; ipLoc-djd=1-72-55653-0; __jda=143920055.1747387851305559880516.1747387851.1767859021.1767868200.45; 3AB9D23F7A4B3CSS=jdd03YHEAMG5ZQYTT7VSQGFYN2QVBNXEIN6USGNDXRZKQTMX6RH32XWP6W5OYQ7ROSW2NDVJBUOIBNBRTEQREITD2PRYOWQAAAAM3TUT7JCYAAAAADLOKNUC36RKV6YX; thor=4E734EF76D9A1CC03E8FC84F5E4569DB1574843E2749B9AF2DC9E8524E6435229794A4FD4E4DB35F2107DC98061B0B594E281101F8FF128ED53B9EB45479AE6065E6CE7E6E7F2B7DCBBFFF80D3CD62AC9983612FD7D095ACCC37E66E1E1DA91E6C73A1F69C201DD3B39B3CB53B104B49D575C44BB1419F5AC1E5B7C1FF6D9921EB93A0DDAE4A0999D5E6BFD837902AE8E2D40B4A270C8AC4FE8EC199E7B67C2C; flash=3_-6yesMoqVgQRG6lFrh6zJtjeVSSOUtII3V9tbgqT7kr9Sz39bLrjw-JMmoZwsl_YVE_XhgtFHNhBHnbAsytA-Npw0iM9_G2py8RFfHk2lCBusheayjl9b-d0hTs8hy3vPREM0IcawhcoMQjNeKWbnvKmii_veVLytBJJyXU--DbSS5PTgRcD; cn=0; shshshfpb=BApXWiv9Anv5AFnFi-FheTK_zdSCe1J4TBgV5f3179xJ1PdZfQrzRnC7ChCbdI5NmawQ98annsaxmIuw37_gHsNsiYAu2rhuW5QQ; 3AB9D23F7A4B3C9B=YHEAMG5ZQYTT7VSQGFYN2QVBNXEIN6USGNDXRZKQTMX6RH32XWP6W5OYQ7ROSW2NDVJBUOIBNBRTEQREITD2PRYOWQ; sdtoken=AAbEsBpEIOVjqTAKCQtvQu177C4-my_SEoflhOmuhg9i4j39HI7i65tPqWDZsljkrCIoWcfmnO9alQIvI7PvAfl4ZL-GC8IN_4WHCY1t_Ek3Sd-w-oswjLj2BLNX5Njr35VAtjukvlMHbNJZFPgV4uneAHVO0zQ-ZgUHLKFRacyWETHe",
referrer: "https://search.jd.com/Search"
}
,null,CONSTRUCTOR_TOKEN),"window.document")
340

被折叠的 条评论
为什么被折叠?



