var catvm = {}; //框架运行内存 catvm.memory = { config: {print: false, proxy:false} }; //默认关闭打印 catvm.memory.htmlelements = {} catvm.memory.listeners = {} catvm.memory.PluginArray = {} catvm.memory.RunElementList = []; catvm.memory.setTimeout_func = {}; catvm.memory.setInterval_func = {}; catvm.memory.doc_addEventListen = {}; catvm.memory.html_addEventListen = {}; //主要用来保护伪造的函数 让其更难被识破 ;;;; (() => { "use strict"; const $toString = Function.toString; const myFunction_toString_symbol = Symbol('('.concat('', ')_', (Math.random() + '').toString(36))); const myToString = function() { return typeof this == 'function' && this[myFunction_toString_symbol] || $toString.call(this); }; function set_native(func, key, value) { Object.defineProperty(func, key, { "enumerable": false, "configurable": true, "writable": true, "value": value }) }; delete Function.prototype['toString']; //删除原型链上的toString set_native(Function.prototype, "toString", myToString); //自己定义个getter方法 set_native(Function.prototype.toString, myFunction_toString_symbol, "function toString() { [native code] }"); //套个娃 保护一下我们定义的toString 否则就暴露了 this.catvm.safefunction = (func) => { set_native(func, myFunction_toString_symbol, `function ${myFunction_toString_symbol,func.name || ''}() { [native code] }`); }; //导出函数到globalThis }).call(this); //框架日志功能 catvm.print = {} catvm.print.open = false; catvm.memory.print = []; catvm.print.log = function (logType,target,property,value) { if (catvm.print.open && catvm.memory.config.print) { //开始保存日志 if( catvm.memory.print.length == 111){ debugger; } catvm.memory.print.push({"类型":logType,"调用者":target,"属性":property,"值":value}); } } catvm.print.getall = function () { console.table(catvm.memory.print,["类型","调用者","属性","值"]); } //框架代理功能 catvm.proxy = function(o){ if(catvm.memory.config.proxy == false){return o}; return new Proxy(o, { set(target, property, value) { catvm.print.log("set",target,property,value); return Reflect.set(...arguments); }, get(target, property, receiver) { console.log("get",target,property,target[property]); catvm.print.log("get",target,property,target[property]); return target[property]; } }); } //更改浏览器的某些参数 常用的 //catvm.memory.Plugin.new({description:"npAliSSOLogin Plugin",filename:"npalissologin.dll",name:"AliSSOLogin plugin",MimeTypes:[{description: "AliSSOLogin",suffixes: "AliSSOLogin",type: "application/npalissologin"},{description: "AliSSOLogin1",suffixes: "AliSSOLogin",type: "application1/npalissologin"}]}) //在此文件下的代码 必须要框架run方法执行后执行 catvm.AddPlugin = function(data){ //{description:"npAliSSOLogin Plugin",filename:"npalissologin.dll",name:"AliSSOLogin plugin",MimeTypes:[{description: "AliSSOLogin",suffixes: "AliSSOLogin",type: "application/npalissologin"},{description: "AliSSOLogin1",suffixes: "AliSSOLogin",type: "application1/npalissologin"}]} if(catvm.memory.PluginArray.temp == undefined) { catvm.memory.PluginArray.temp = [] } catvm.memory.PluginArray.temp.push(data); } catvm.memory.config.proxy=true; catvm.memory.config.print=true; catvm.AddPlugin({description:"npAliSSOLogin Plugin",filename:"npalissologin.dll",name:"AliSSOLogin plugin",MimeTypes:[{description: "AliSSOLogin",suffixes: "AliSSOLogin",type: "application/npalissologin"},{description: "AliSSOLogin1",suffixes: "AliSSOLogin",type: "application1/npalissologin"}]}); catvm.AddPlugin({description:"npAliSSOLogin Plugin",filename:"npalissologin1.dll",name:"AliSSOLogin plugin2",MimeTypes:[{description: "AliSSOLogin",suffixes: "AliSSOLogin",type: "application/npalissologin"},{description: "AliSSOLogin1",suffixes: "AliSSOLogin",type: "application1/npalissologin"}]}); ; var EventTarget =function EventTarget() //构造函数 { debugger; }; catvm.safefunction(EventTarget); Object.defineProperties(EventTarget.prototype , { [Symbol.toStringTag]: { value: "EventTarget", configurable: true } }); EventTarget.prototype.addEventListener = function addEventListener(type, callback){ if(!(type in catvm.memory.listeners)) { catvm.memory.listeners[type] = []; } catvm.memory.listeners[type].push(callback); };catvm.safefunction(EventTarget.prototype.addEventListener); //保护代码 EventTarget.prototype.dispatchEvent = function dispatchEvent(){ debugger; };catvm.safefunction(EventTarget.prototype.dispatchEvent); //保护代码 EventTarget.prototype.removeEventListener = function removeEventListener(){ debugger; };catvm.safefunction(EventTarget.prototype.removeEventListener); //保护代码 var WindowProperties = function WindowProperties(){ }; catvm.safefunction(WindowProperties); //保护代码 Object.defineProperties(WindowProperties.prototype , { [Symbol.toStringTag]: { value: "WindowProperties", configurable: true } }); WindowProperties.prototype.__proto__ = EventTarget.prototype; window = this; var Window = function Window(){ //容易被检测到的 堆栈 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Window); Object.defineProperties(Window.prototype , { [Symbol.toStringTag]: { value: "Window", configurable: true } }); //// window.setTimeout = function setTimeout(x,d) { //x 有可能是方法 也有可能是文本 // debugger; // typeof(x) == "function"?x():undefined; // typeof(x) == "string"?eval(x) :undefined; //正确应该 生成UUID 并且保存到内存 catvm.memory.setTimeout_func[d.toString()] = x return 0; };catvm.safefunction(window.setTimeout); window.setInterval = function setInterval(x,d){ //x 有可能是方法 也有可能是文本 // typeof(x) == "function" ? x() : undefined; // typeof(x) == "string" ? eval(x) : undefined; //正确应该 生成UUID 并且保存到内存 catvm.memory.setInterval_func[d.toString()] = x return 0; };catvm.safefunction(window.setInterval); Window.prototype.PERSISTENT = 1 Window.prototype.TEMPORARY = 0 window.top = window; window.origin = 'chrome://newtab' window.name = '' window.open = function open(){debugger;};catvm.safefunction(window.open); window.webkitRTCPeerConnection = function RTCPeerConnection(){debugger};catvm.safefunction(window.webkitRTCPeerConnection); //chrome可以参照localStorange window.chrome = class chrome{}; window.chrome.loadTimes = function loadTimes(){debugger;};catvm.safefunction(window.chrome.loadTimes); window.chrome.csi = function csi(){debugger;};catvm.safefunction(window.chrome.csi); window.chrome.app = catvm.proxy(class app{}); window.chrome = catvm.proxy(window.chrome); window.Element = function Element(){debugger;};catvm.safefunction(window.Element); window.DeviceOrientationEvent = function DeviceOrientationEvent(){debugger};catvm.safefunction(window.DeviceOrientationEvent); window.DeviceMotionEvent = function DeviceMotionEvent(){debugger};catvm.safefunction(window.DeviceMotionEvent); window.XMLHttpRequest = function XMLHttpRequest(){debugger;};catvm.safefunction(window.XMLHttpRequest); // window.localStorange = class localStorange{} // window.localStorange.getItem = function getItem(){debugger;};catvm.safefunction(window.localStorange.getItem); // window.localStorange.setItem = function setItem(){debugger;};catvm.safefunction(window.localStorange.setItem); // window.localStorange = catvm.proxy(window.localStorange) //没问题 window.IDBFactory = function IDBFactory(){ debugger; };catvm.safefunction(window.IDBFactory); window.IDBFactory.prototype.open = function open(){ debugger; var open_ = { error: "", onblocked: null, onerror: null, onsuccess: null, onupgradeneeded: null, readyState: "pending", result: "", source: null, transaction: null, } return catvm.proxy(open_) };catvm.safefunction(window.IDBFactory.prototype.open); window.indexedDB = {}; window.indexedDB.__proto__ = window.IDBFactory.prototype; window.indexedDB = catvm.proxy(window.indexedDB); window.DOMParser = function DOMParser(){ debugger; };catvm.safefunction(window.DOMParser); //没问题 window.webkitRequestFileSystem = function webkitRequestFileSystem(){ debugger; };catvm.safefunction(window.webkitRequestFileSystem); window.clearInterval = function clearInterval(){ debugger; };catvm.safefunction(window.clearInterval); var HTMLFormElement = function HTMLFormElement(){ };catvm.safefunction(HTMLFormElement); window.fetch = function fetch(){ debugger; };catvm.safefunction(fetch); window.openDatabase = function openDatabase(){ debugger; };catvm.safefunction(window.openDatabase); window.self = window; window.Request = function Request(){ debugger; };catvm.safefunction(window.Request); window.webkitResolveLocalFileSystemURL = function webkitResolveLocalFileSystemURL(){ debugger; };catvm.safefunction(window.webkitResolveLocalFileSystemURL); //没问题 window.MutationObserver = function MutationObserver(){ debugger; this.disconnect = function disconnect(){debugger;} this.observe = function observe(){debugger;} this.takeRecords = function takeRecords(){debugger;} return catvm.proxy(this) };catvm.safefunction(window.MutationObserver); window.Error = new Proxy(window.Error,{ construct: function (a,s){ res = new a(s) res.stack = `Error at _$e2 (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:20609) at _$nr (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:26991) at _$dg (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:22738) at _$nr (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:26104) at _$dg (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:22738) at _$nr (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:24525) at Array._$dg (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:22738) at eval (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :2:158543) at eval (eval at _$c5 (http://credit.customs.gov.cn/ccppwebserver/ZCQq7Fzuhp12/BSrw3csEQORp.f141528.js:5:170106), :9:2637) at eval ()` debugger return res; } }); window.addEventListener = function addEventListener(X,func){ debugger; catvm.memory.listeners[X.toString()] = func; };catvm.safefunction(window.addEventListener); Window.prototype.__proto__ = WindowProperties.prototype; window.__proto__ = Window.prototype; Window.prototype = catvm.proxy(Window.prototype) window = catvm.proxy(window) var Location =function Location() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Location); Object.defineProperties(Location.prototype , { [Symbol.toStringTag]: { value: "Location", configurable: false } }); //// location = {}; location.ancestorOrigins = catvm.proxy(class ancestorOrigins{}); location.href = 'http://zxgk.court.gov.cn/'; location.host = 'zxgk.court.gov.cn'; //如果url中包含了:端口号,则就要加上,但是hostname不用加 location.hostname = location.host; location.protocol = 'http:'; location.port = ''; location.origin = 'http://zxgk.court.gov.cn'; location.pathname = '/' location.search = ""; location.hash = ""; location.search = function search(){ debugger; };catvm.safefunction(location.search); location.replace = function replace(){ debugger; };catvm.safefunction(location.replace); location.__proto__ = Location.prototype; /// location = catvm.proxy(location); catvm.memory.navigator = {} var Navigator =function Navigator() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Navigator); Object.defineProperties(Navigator.prototype , { [Symbol.toStringTag]: { value: "Navigator", configurable: true } }); //// navigator = {}; navigator.__proto__ = Navigator.prototype; Navigator.prototype.appCodeName = 'Mozilla'; Navigator.prototype.appName = 'Netscape'; Navigator.prototype.userAgent = "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"; Navigator.prototype.languages = ["zh-CN", "zh"]; Navigator.prototype.platform = 'Win32'; Navigator.prototype.plugins = []; var NetworkInformation = class NetworkInformation{}; NetworkInformation.downlink = 10; NetworkInformation.effectiveType = "4g"; NetworkInformation.onchange = null; NetworkInformation.rtt = 150; NetworkInformation.saveData = false; Navigator.prototype.connection = catvm.proxy(NetworkInformation); Navigator.prototype.appVersion = '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'; Navigator.prototype.webkitPersistentStorage = class DeprecatedStorageQuota{}; Navigator.prototype.webkitPersistentStorage = catvm.proxy(Navigator.prototype.webkitPersistentStorage); Navigator.prototype.mimeTypes = { length:0 } Navigator.prototype.mimeTypes = catvm.proxy(Navigator.prototype.mimeTypes); Navigator.prototype.webdriver = false; catvm.memory.navigator.getwebdriver = function webdriver(){ return false; };catvm.safefunction(catvm.memory.navigator.getwebdriver); Object.defineProperty(Navigator.prototype, 'webdriver', { configurable: true, enumerable: true, get: catvm.memory.navigator.getwebdriver }); Navigator.prototype.getBattery = function getBattery(){ var BatteryManager_ = new (function BatteryManager(){}); BatteryManager_.charging = false; BatteryManager_.chargingTime = Infinity; BatteryManager_.dischargingTime = Infinity; BatteryManager_.level = 1; BatteryManager_.onchargingchange = null; BatteryManager_.onchargingtimechange = null; BatteryManager_.ondischargingtimechange = null; BatteryManager_.onlevelchange = null; BatteryManager_.__proto__ = BatteryManager.prototype; return new Promise((resolve,reject) => { resolve(BatteryManager_); }) };catvm.safefunction(Navigator.prototype.getBattery); //Navigator.prototype.getBattery = catvm.proxy(Navigator.prototype.getBattery); for (catvm.memory.navigator.temp in Navigator.prototype) { if(catvm.memory.navigator.temp === "webdriver"){ continue; } navigator[catvm.memory.navigator.temp] = Navigator.prototype[catvm.memory.navigator.temp]; Navigator.prototype.__defineGetter__(catvm.memory.navigator.temp, function() { throw new TypeError("Illegal constructor"); }); } //// window.clientInformation = navigator; navigator = catvm.proxy(navigator); var History =function History() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(History); Object.defineProperties(History.prototype , { [Symbol.toStringTag]: { value: "History", configurable: true } }); //// History.prototype.back = function back(){debugger};catvm.safefunction(History.prototype.back); ///// history = {}; history.__proto__ = History.prototype; history = catvm.proxy(history); var Screen =function Screen() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Screen); Object.defineProperties(Screen.prototype , { [Symbol.toStringTag]: { value: "Screen", configurable: true } }); //// Screen.prototype.availHeight = 824; Screen.prototype.availWidth = 1536; //// screen = {}; screen.__proto__ = Screen.prototype; screen = catvm.proxy(screen); var Storage =function Storage() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Storage); Object.defineProperties(Storage.prototype , { [Symbol.toStringTag]: { value: "Storage", configurable: true } }); ///// Storage.prototype.length=0; Storage.prototype.clear=function clear(){ debugger; var temp = Object.keys(this) for (var i=0;temp.length>i;i++) { delete this[temp[i]]; } }; catvm.safefunction(Storage.prototype.clear); Storage.prototype.getItem=function getItem(k){ debugger; return this[k]; }; catvm.safefunction(Storage.prototype.getItem); Storage.prototype.key=function key(index){ debugger; return Object.keys(this)[index] }; catvm.safefunction(Storage.prototype.key); Storage.prototype.removeItem=function removeItem(k){ debugger; delete this[k]; }; catvm.safefunction(Storage.prototype.removeItem); Storage.prototype.setItem=function setItem(k,v){ debugger; this[k] = v; }; catvm.safefunction(Storage.prototype.setItem); ////容易被检测 Storage.prototype.__defineGetter__('length',function(){ return Object.keys(this).length; }) ////// var localStorage = {}; localStorage.__proto__ = Storage.prototype; localStorage = catvm.proxy(localStorage); var sessionStorage = { length: 0 }; sessionStorage.__proto__ = Storage.prototype; sessionStorage = catvm.proxy(sessionStorage); catvm.memory.Plugin = {} var Plugin =function Plugin() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Plugin); catvm.memory.Plugin.iterator = function values(){ debugger; }; catvm.safefunction(catvm.memory.Plugin.iterator); Object.defineProperties(Navigator.prototype , { [Symbol.toStringTag]: { value: "Plugin", configurable: true }, [Symbol.iterator]: { value: catvm.memory.Plugin.iterator, configurable: true } }); /////////// ////////// catvm.memory.Plugin.new = function (data){ var plugin = {}; plugin.__proto__ = Plugin.prototype; if(data != undefined){ plugin.description = data.description; plugin.filename = data.filename; plugin.name = data.name; } return plugin; } var Performance = function Performance(){ //容易被检测到的 堆栈 throw new TypeError("Illegal constructor"); }; catvm.safefunction(Performance); Object.defineProperties(Performance.prototype , { [Symbol.toStringTag]: { value: "Performance", configurable: true } }); //// performance = {}; performance.__proto__ = Performance.prototype; Performance.prototype = function getEntriesByName(){debugger};catvm.safefunction(Performance.prototype); ///// Performance.prototype.__proto__ = EventTarget.prototype; performance = catvm.proxy(performance); var BatteryManager = function BatteryManager(){ //容易被检测到的 堆栈 throw new TypeError("Illegal constructor"); }; catvm.safefunction(BatteryManager); Object.defineProperties(BatteryManager.prototype , { [Symbol.toStringTag]: { value: "BatteryManager", configurable: true } }); /// BatteryManager.prototype.charging = true; BatteryManager.prototype.chargingTime = Infinity; BatteryManager.prototype.dischargingTime = Infinity; BatteryManager.prototype.level = 1; BatteryManager.prototype.onchargingchange = null; BatteryManager.prototype.onchargingtimechange = null; BatteryManager.prototype.ondischargingtimechange = null; BatteryManager.prototype.onlevelchange = null; BatteryManager.prototype.__proto__ = EventTarget.prototype ///// catvm.memory.navigator = {} var HTMLDivElement =function HTMLDivElement() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(HTMLDivElement); Object.defineProperties(HTMLDivElement.prototype , { [Symbol.toStringTag]: { value: "HTMLDivElement", configurable: true } }); HTMLDivElement.prototype.getElementsByTagName = function getElementsByTagName(){ debugger };catvm.safefunction(HTMLDivElement.prototype.getElementsByTagName); var HTMLMetaElement =function HTMLMetaElement() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(HTMLMetaElement); Object.defineProperties(HTMLMetaElement.prototype , { [Symbol.toStringTag]: { value: "HTMLMetaElement", configurable: true } }); var HTMLHtmlElement =function HTMLHtmlElement() {//构造函数 throw new TypeError("Illegal constructor"); }; catvm.safefunction(HTMLHtmlElement); Object.defineProperties(HTMLHtmlElement.prototype , { [Symbol.toStringTag]: { value: "HTMLHtmlElement", configurable: true } }); var Document = function Document(){ }; catvm.safefunction(Document); Object.defineProperties(Document.prototype , { [Symbol.toStringTag]: { value: "Document", configurable: true } }); document = {}; document.__proto__ = Document.prototype; ////// document.characterSet = 'UTF-8' document.charset = 'UTF-8' //没问题 document.getElementById = function getElementById(id){ debugger; return null; };catvm.safefunction(document.getElementById); //没问题 document.addEventListener = function addEventListener(type,listener,options,useCapture){ debugger; if(catvm.memory.doc_addEventListen[type.toString()] == undefined){ catvm.memory.doc_addEventListen[type.toString()] = []; } catvm.memory.doc_addEventListen[type.toString()].push(listener); };catvm.safefunction(document.addEventListener); document.exitFullscreen = function exitFullscreen(){debugger;};catvm.safefunction(document.exitFullscreen); //没问题 document.createElement = function createElement(x){ debugger; if(x=="div"){ let div = class div{}; div.localName = `<${x}>`; div.getElementsByTagName = function(){ var i = class i{}; i.length = 0; return catvm.proxy(i); };catvm.safefunction(div.getElementsByTagName); div.style = { "accentColor": "", "additiveSymbols": "", "alignContent": "", "alignItems": "", "alignSelf": "", "alignmentBaseline": "", "all": "", "animation": "", "animationDelay": "", "animationDirection": "", "animationDuration": "", "animationFillMode": "", "animationIterationCount": "", "animationName": "", "animationPlayState": "", "animationTimingFunction": "", "appRegion": "", "appearance": "", "ascentOverride": "", "aspectRatio": "", "backdropFilter": "", "backfaceVisibility": "", "background": "", "backgroundAttachment": "", "backgroundBlendMode": "", "backgroundClip": "", "backgroundColor": "", "backgroundImage": "", "backgroundOrigin": "", "backgroundPosition": "", "backgroundPositionX": "", "backgroundPositionY": "", "backgroundRepeat": "", "backgroundRepeatX": "", "backgroundRepeatY": "", "backgroundSize": "", "baselineShift": "", "blockSize": "", "border": "", "borderBlock": "", "borderBlockColor": "", "borderBlockEnd": "", "borderBlockEndColor": "", "borderBlockEndStyle": "", "borderBlockEndWidth": "", "borderBlockStart": "", "borderBlockStartColor": "", "borderBlockStartStyle": "", "borderBlockStartWidth": "", "borderBlockStyle": "", "borderBlockWidth": "", "borderBottom": "", "borderBottomColor": "", "borderBottomLeftRadius": "", "borderBottomRightRadius": "", "borderBottomStyle": "", "borderBottomWidth": "", "borderCollapse": "", "borderColor": "", "borderEndEndRadius": "", "borderEndStartRadius": "", "borderImage": "", "borderImageOutset": "", "borderImageRepeat": "", "borderImageSlice": "", "borderImageSource": "", "borderImageWidth": "", "borderInline": "", "borderInlineColor": "", "borderInlineEnd": "", "borderInlineEndColor": "", "borderInlineEndStyle": "", "borderInlineEndWidth": "", "borderInlineStart": "", "borderInlineStartColor": "", "borderInlineStartStyle": "", "borderInlineStartWidth": "", "borderInlineStyle": "", "borderInlineWidth": "", "borderLeft": "", "borderLeftColor": "", "borderLeftStyle": "", "borderLeftWidth": "", "borderRadius": "", "borderRight": "", "borderRightColor": "", "borderRightStyle": "", "borderRightWidth": "", "borderSpacing": "", "borderStartEndRadius": "", "borderStartStartRadius": "", "borderStyle": "", "borderTop": "", "borderTopColor": "", "borderTopLeftRadius": "", "borderTopRightRadius": "", "borderTopStyle": "", "borderTopWidth": "", "borderWidth": "", "bottom": "", "boxShadow": "", "boxSizing": "", "breakAfter": "", "breakBefore": "", "breakInside": "", "bufferedRendering": "", "captionSide": "", "caretColor": "", "clear": "", "clip": "", "clipPath": "", "clipRule": "", "color": "", "colorInterpolation": "", "colorInterpolationFilters": "", "colorRendering": "", "colorScheme": "", "columnCount": "", "columnFill": "", "columnGap": "", "columnRule": "", "columnRuleColor": "", "columnRuleStyle": "", "columnRuleWidth": "", "columnSpan": "", "columnWidth": "", "columns": "", "contain": "", "containIntrinsicBlockSize": "", "containIntrinsicHeight": "", "containIntrinsicInlineSize": "", "containIntrinsicSize": "", "containIntrinsicWidth": "", "content": "", "contentVisibility": "", "counterIncrement": "", "counterReset": "", "counterSet": "", "cursor": "", "cx": "", "cy": "", "d": "", "descentOverride": "", "direction": "", "display": "", "dominantBaseline": "", "emptyCells": "", "fallback": "", "fill": "", "fillOpacity": "", "fillRule": "", "filter": "", "flex": "", "flexBasis": "", "flexDirection": "", "flexFlow": "", "flexGrow": "", "flexShrink": "", "flexWrap": "", "float": "", "floodColor": "", "floodOpacity": "", "font": "", "fontDisplay": "", "fontFamily": "", "fontFeatureSettings": "", "fontKerning": "", "fontOpticalSizing": "", "fontSize": "", "fontStretch": "", "fontStyle": "", "fontVariant": "", "fontVariantCaps": "", "fontVariantEastAsian": "", "fontVariantLigatures": "", "fontVariantNumeric": "", "fontVariationSettings": "", "fontWeight": "", "forcedColorAdjust": "", "gap": "", "grid": "", "gridArea": "", "gridAutoColumns": "", "gridAutoFlow": "", "gridAutoRows": "", "gridColumn": "", "gridColumnEnd": "", "gridColumnGap": "", "gridColumnStart": "", "gridGap": "", "gridRow": "", "gridRowEnd": "", "gridRowGap": "", "gridRowStart": "", "gridTemplate": "", "gridTemplateAreas": "", "gridTemplateColumns": "", "gridTemplateRows": "", "height": "", "hyphens": "", "imageOrientation": "", "imageRendering": "", "inherits": "", "initialValue": "", "inlineSize": "", "inset": "", "insetBlock": "", "insetBlockEnd": "", "insetBlockStart": "", "insetInline": "", "insetInlineEnd": "", "insetInlineStart": "", "isolation": "", "justifyContent": "", "justifyItems": "", "justifySelf": "", "left": "", "letterSpacing": "", "lightingColor": "", "lineBreak": "", "lineGapOverride": "", "lineHeight": "", "listStyle": "", "listStyleImage": "", "listStylePosition": "", "listStyleType": "", "margin": "", "marginBlock": "", "marginBlockEnd": "", "marginBlockStart": "", "marginBottom": "", "marginInline": "", "marginInlineEnd": "", "marginInlineStart": "", "marginLeft": "", "marginRight": "", "marginTop": "", "marker": "", "markerEnd": "", "markerMid": "", "markerStart": "", "mask": "", "maskType": "", "maxBlockSize": "", "maxHeight": "", "maxInlineSize": "", "maxWidth": "", "maxZoom": "", "minBlockSize": "", "minHeight": "", "minInlineSize": "", "minWidth": "", "minZoom": "", "mixBlendMode": "", "negative": "", "objectFit": "", "objectPosition": "", "offset": "", "offsetDistance": "", "offsetPath": "", "offsetRotate": "", "opacity": "", "order": "", "orientation": "", "orphans": "", "outline": "", "outlineColor": "", "outlineOffset": "", "outlineStyle": "", "outlineWidth": "", "overflow": "", "overflowAnchor": "", "overflowClipMargin": "", "overflowWrap": "", "overflowX": "", "overflowY": "", "overscrollBehavior": "", "overscrollBehaviorBlock": "", "overscrollBehaviorInline": "", "overscrollBehaviorX": "", "overscrollBehaviorY": "", "pad": "", "padding": "", "paddingBlock": "", "paddingBlockEnd": "", "paddingBlockStart": "", "paddingBottom": "", "paddingInline": "", "paddingInlineEnd": "", "paddingInlineStart": "", "paddingLeft": "", "paddingRight": "", "paddingTop": "", "page": "", "pageBreakAfter": "", "pageBreakBefore": "", "pageBreakInside": "", "pageOrientation": "", "paintOrder": "", "perspective": "", "perspectiveOrigin": "", "placeContent": "", "placeItems": "", "placeSelf": "", "pointerEvents": "", "position": "", "prefix": "", "quotes": "", "r": "", "range": "", "resize": "", "right": "", "rowGap": "", "rubyPosition": "", "rx": "", "ry": "", "scrollBehavior": "", "scrollMargin": "", "scrollMarginBlock": "", "scrollMarginBlockEnd": "", "scrollMarginBlockStart": "", "scrollMarginBottom": "", "scrollMarginInline": "", "scrollMarginInlineEnd": "", "scrollMarginInlineStart": "", "scrollMarginLeft": "", "scrollMarginRight": "", "scrollMarginTop": "", "scrollPadding": "", "scrollPaddingBlock": "", "scrollPaddingBlockEnd": "", "scrollPaddingBlockStart": "", "scrollPaddingBottom": "", "scrollPaddingInline": "", "scrollPaddingInlineEnd": "", "scrollPaddingInlineStart": "", "scrollPaddingLeft": "", "scrollPaddingRight": "", "scrollPaddingTop": "", "scrollSnapAlign": "", "scrollSnapStop": "", "scrollSnapType": "", "scrollbarGutter": "", "shapeImageThreshold": "", "shapeMargin": "", "shapeOutside": "", "shapeRendering": "", "size": "", "sizeAdjust": "", "speak": "", "speakAs": "", "src": "", "stopColor": "", "stopOpacity": "", "stroke": "", "strokeDasharray": "", "strokeDashoffset": "", "strokeLinecap": "", "strokeLinejoin": "", "strokeMiterlimit": "", "strokeOpacity": "", "strokeWidth": "", "suffix": "", "symbols": "", "syntax": "", "system": "", "tabSize": "", "tableLayout": "", "textAlign": "", "textAlignLast": "", "textAnchor": "", "textCombineUpright": "", "textDecoration": "", "textDecorationColor": "", "textDecorationLine": "", "textDecorationSkipInk": "", "textDecorationStyle": "", "textDecorationThickness": "", "textIndent": "", "textOrientation": "", "textOverflow": "", "textRendering": "", "textShadow": "", "textSizeAdjust": "", "textTransform": "", "textUnderlineOffset": "", "textUnderlinePosition": "", "top": "", "touchAction": "", "transform": "", "transformBox": "", "transformOrigin": "", "transformStyle": "", "transition": "", "transitionDelay": "", "transitionDuration": "", "transitionProperty": "", "transitionTimingFunction": "", "unicodeBidi": "", "unicodeRange": "", "userSelect": "", "userZoom": "", "vectorEffect": "", "verticalAlign": "", "visibility": "", "webkitAlignContent": "", "webkitAlignItems": "", "webkitAlignSelf": "", "webkitAnimation": "", "webkitAnimationDelay": "", "webkitAnimationDirection": "", "webkitAnimationDuration": "", "webkitAnimationFillMode": "", "webkitAnimationIterationCount": "", "webkitAnimationName": "", "webkitAnimationPlayState": "", "webkitAnimationTimingFunction": "", "webkitAppRegion": "", "webkitAppearance": "", "webkitBackfaceVisibility": "", "webkitBackgroundClip": "", "webkitBackgroundOrigin": "", "webkitBackgroundSize": "", "webkitBorderAfter": "", "webkitBorderAfterColor": "", "webkitBorderAfterStyle": "", "webkitBorderAfterWidth": "", "webkitBorderBefore": "", "webkitBorderBeforeColor": "", "webkitBorderBeforeStyle": "", "webkitBorderBeforeWidth": "", "webkitBorderBottomLeftRadius": "", "webkitBorderBottomRightRadius": "", "webkitBorderEnd": "", "webkitBorderEndColor": "", "webkitBorderEndStyle": "", "webkitBorderEndWidth": "", "webkitBorderHorizontalSpacing": "", "webkitBorderImage": "", "webkitBorderRadius": "", "webkitBorderStart": "", "webkitBorderStartColor": "", "webkitBorderStartStyle": "", "webkitBorderStartWidth": "", "webkitBorderTopLeftRadius": "", "webkitBorderTopRightRadius": "", "webkitBorderVerticalSpacing": "", "webkitBoxAlign": "", "webkitBoxDecorationBreak": "", "webkitBoxDirection": "", "webkitBoxFlex": "", "webkitBoxOrdinalGroup": "", "webkitBoxOrient": "", "webkitBoxPack": "", "webkitBoxReflect": "", "webkitBoxShadow": "", "webkitBoxSizing": "", "webkitClipPath": "", "webkitColumnBreakAfter": "", "webkitColumnBreakBefore": "", "webkitColumnBreakInside": "", "webkitColumnCount": "", "webkitColumnGap": "", "webkitColumnRule": "", "webkitColumnRuleColor": "", "webkitColumnRuleStyle": "", "webkitColumnRuleWidth": "", "webkitColumnSpan": "", "webkitColumnWidth": "", "webkitColumns": "", "webkitFilter": "", "webkitFlex": "", "webkitFlexBasis": "", "webkitFlexDirection": "", "webkitFlexFlow": "", "webkitFlexGrow": "", "webkitFlexShrink": "", "webkitFlexWrap": "", "webkitFontFeatureSettings": "", "webkitFontSmoothing": "", "webkitHighlight": "", "webkitHyphenateCharacter": "", "webkitJustifyContent": "", "webkitLineBreak": "", "webkitLineClamp": "", "webkitLocale": "", "webkitLogicalHeight": "", "webkitLogicalWidth": "", "webkitMarginAfter": "", "webkitMarginBefore": "", "webkitMarginEnd": "", "webkitMarginStart": "", "webkitMask": "", "webkitMaskBoxImage": "", "webkitMaskBoxImageOutset": "", "webkitMaskBoxImageRepeat": "", "webkitMaskBoxImageSlice": "", "webkitMaskBoxImageSource": "", "webkitMaskBoxImageWidth": "", "webkitMaskClip": "", "webkitMaskComposite": "", "webkitMaskImage": "", "webkitMaskOrigin": "", "webkitMaskPosition": "", "webkitMaskPositionX": "", "webkitMaskPositionY": "", "webkitMaskRepeat": "", "webkitMaskRepeatX": "", "webkitMaskRepeatY": "", "webkitMaskSize": "", "webkitMaxLogicalHeight": "", "webkitMaxLogicalWidth": "", "webkitMinLogicalHeight": "", "webkitMinLogicalWidth": "", "webkitOpacity": "", "webkitOrder": "", "webkitPaddingAfter": "", "webkitPaddingBefore": "", "webkitPaddingEnd": "", "webkitPaddingStart": "", "webkitPerspective": "", "webkitPerspectiveOrigin": "", "webkitPerspectiveOriginX": "", "webkitPerspectiveOriginY": "", "webkitPrintColorAdjust": "", "webkitRtlOrdering": "", "webkitRubyPosition": "", "webkitShapeImageThreshold": "", "webkitShapeMargin": "", "webkitShapeOutside": "", "webkitTapHighlightColor": "", "webkitTextCombine": "", "webkitTextDecorationsInEffect": "", "webkitTextEmphasis": "", "webkitTextEmphasisColor": "", "webkitTextEmphasisPosition": "", "webkitTextEmphasisStyle": "", "webkitTextFillColor": "", "webkitTextOrientation": "", "webkitTextSecurity": "", "webkitTextSizeAdjust": "", "webkitTextStroke": "", "webkitTextStrokeColor": "", "webkitTextStrokeWidth": "", "webkitTransform": "", "webkitTransformOrigin": "", "webkitTransformOriginX": "", "webkitTransformOriginY": "", "webkitTransformOriginZ": "", "webkitTransformStyle": "", "webkitTransition": "", "webkitTransitionDelay": "", "webkitTransitionDuration": "", "webkitTransitionProperty": "", "webkitTransitionTimingFunction": "", "webkitUserDrag": "", "webkitUserModify": "", "webkitUserSelect": "", "webkitWritingMode": "", "whiteSpace": "", "widows": "", "width": "", "willChange": "", "wordBreak": "", "wordSpacing": "", "wordWrap": "", "writingMode": "", "x": "", "y": "", "zIndex": "", "zoom": "" } div.innerHTML = '<\!--[if gt IE 4]>'; return catvm.proxy(div); } if(x=="form"){ let iframe = class iframe{}; return catvm.proxy(iframe) } if(x=='a'){ return {}; } debugger; };catvm.safefunction(document.createElement); //没问题 document.getElementsByTagName = function getElementsByTagName(name){ //返回HTMLCollection debugger; //没问题 if(name=='meta'){ debugger; var meta0 = { parentNode:{ removeChild : function(){debugger;} }, getAttribute:function(){debugger;return null} } catvm.safefunction(meta0.getAttribute); catvm.safefunction(meta0.parentNode.removeChild); meta0.__proto__ = HTMLMetaElement.prototype; meta0 = catvm.proxy(meta0) var meta1 = { content:"window.content", parentNode:{ removeChild : function(){debugger;} }, getAttribute:function(){debugger;return "m"} } catvm.safefunction(meta1.getAttribute); catvm.safefunction(meta1.parentNode); meta1.__proto__ = HTMLMetaElement.prototype; meta1 = catvm.proxy(meta1) var obj = { length:2, 0:meta0, 1:meta1, } obj = catvm.proxy(obj) return obj } //没问题 if(name=="script"){ //没问题 debugger; function getAttribute(name){ debugger; if(name=='r'){ return 'm' } return null };catvm.safefunction(getAttribute); function removeChild(name){ debugger; };catvm.safefunction(removeChild); var script1 = { "getAttribute" : getAttribute, "parentElement":{ removeChild : removeChild } }; script1 = catvm.proxy(script1); var script2 = { "getAttribute" : getAttribute, "parentElement":{ removeChild : removeChild } }; script2 = catvm.proxy(script2); // var script3 = { // "getAttribute" : getAttribute, // "parentElement":{ // removeChild : removeChild // } // }; // script3 = catvm.proxy(script3); var obj = { 0 : script1, 1 : script2, length : 2, } obj = catvm.proxy(obj); return obj } if(name=="base"){ var base = class base{}; base.length = 0; return catvm.proxy(base) } };catvm.safefunction(document.getElementsByTagName); var html = class html{}; html.style = { "accentColor": "", "additiveSymbols": "", "alignContent": "", "alignItems": "", "alignSelf": "", "alignmentBaseline": "", "all": "", "animation": "", "animationDelay": "", "animationDirection": "", "animationDuration": "", "animationFillMode": "", "animationIterationCount": "", "animationName": "", "animationPlayState": "", "animationTimingFunction": "", "appRegion": "", "appearance": "", "ascentOverride": "", "aspectRatio": "", "backdropFilter": "", "backfaceVisibility": "", "background": "", "backgroundAttachment": "", "backgroundBlendMode": "", "backgroundClip": "", "backgroundColor": "", "backgroundImage": "", "backgroundOrigin": "", "backgroundPosition": "", "backgroundPositionX": "", "backgroundPositionY": "", "backgroundRepeat": "", "backgroundRepeatX": "", "backgroundRepeatY": "", "backgroundSize": "", "baselineShift": "", "blockSize": "", "border": "", "borderBlock": "", "borderBlockColor": "", "borderBlockEnd": "", "borderBlockEndColor": "", "borderBlockEndStyle": "", "borderBlockEndWidth": "", "borderBlockStart": "", "borderBlockStartColor": "", "borderBlockStartStyle": "", "borderBlockStartWidth": "", "borderBlockStyle": "", "borderBlockWidth": "", "borderBottom": "", "borderBottomColor": "", "borderBottomLeftRadius": "", "borderBottomRightRadius": "", "borderBottomStyle": "", "borderBottomWidth": "", "borderCollapse": "", "borderColor": "", "borderEndEndRadius": "", "borderEndStartRadius": "", "borderImage": "", "borderImageOutset": "", "borderImageRepeat": "", "borderImageSlice": "", "borderImageSource": "", "borderImageWidth": "", "borderInline": "", "borderInlineColor": "", "borderInlineEnd": "", "borderInlineEndColor": "", "borderInlineEndStyle": "", "borderInlineEndWidth": "", "borderInlineStart": "", "borderInlineStartColor": "", "borderInlineStartStyle": "", "borderInlineStartWidth": "", "borderInlineStyle": "", "borderInlineWidth": "", "borderLeft": "", "borderLeftColor": "", "borderLeftStyle": "", "borderLeftWidth": "", "borderRadius": "", "borderRight": "", "borderRightColor": "", "borderRightStyle": "", "borderRightWidth": "", "borderSpacing": "", "borderStartEndRadius": "", "borderStartStartRadius": "", "borderStyle": "", "borderTop": "", "borderTopColor": "", "borderTopLeftRadius": "", "borderTopRightRadius": "", "borderTopStyle": "", "borderTopWidth": "", "borderWidth": "", "bottom": "", "boxShadow": "", "boxSizing": "", "breakAfter": "", "breakBefore": "", "breakInside": "", "bufferedRendering": "", "captionSide": "", "caretColor": "", "clear": "", "clip": "", "clipPath": "", "clipRule": "", "color": "", "colorInterpolation": "", "colorInterpolationFilters": "", "colorRendering": "", "colorScheme": "", "columnCount": "", "columnFill": "", "columnGap": "", "columnRule": "", "columnRuleColor": "", "columnRuleStyle": "", "columnRuleWidth": "", "columnSpan": "", "columnWidth": "", "columns": "", "contain": "", "containIntrinsicBlockSize": "", "containIntrinsicHeight": "", "containIntrinsicInlineSize": "", "containIntrinsicSize": "", "containIntrinsicWidth": "", "content": "", "contentVisibility": "", "counterIncrement": "", "counterReset": "", "counterSet": "", "cursor": "", "cx": "", "cy": "", "d": "", "descentOverride": "", "direction": "", "display": "", "dominantBaseline": "", "emptyCells": "", "fallback": "", "fill": "", "fillOpacity": "", "fillRule": "", "filter": "", "flex": "", "flexBasis": "", "flexDirection": "", "flexFlow": "", "flexGrow": "", "flexShrink": "", "flexWrap": "", "float": "", "floodColor": "", "floodOpacity": "", "font": "", "fontDisplay": "", "fontFamily": "", "fontFeatureSettings": "", "fontKerning": "", "fontOpticalSizing": "", "fontSize": "", "fontStretch": "", "fontStyle": "", "fontVariant": "", "fontVariantCaps": "", "fontVariantEastAsian": "", "fontVariantLigatures": "", "fontVariantNumeric": "", "fontVariationSettings": "", "fontWeight": "", "forcedColorAdjust": "", "gap": "", "grid": "", "gridArea": "", "gridAutoColumns": "", "gridAutoFlow": "", "gridAutoRows": "", "gridColumn": "", "gridColumnEnd": "", "gridColumnGap": "", "gridColumnStart": "", "gridGap": "", "gridRow": "", "gridRowEnd": "", "gridRowGap": "", "gridRowStart": "", "gridTemplate": "", "gridTemplateAreas": "", "gridTemplateColumns": "", "gridTemplateRows": "", "height": "", "hyphens": "", "imageOrientation": "", "imageRendering": "", "inherits": "", "initialValue": "", "inlineSize": "", "inset": "", "insetBlock": "", "insetBlockEnd": "", "insetBlockStart": "", "insetInline": "", "insetInlineEnd": "", "insetInlineStart": "", "isolation": "", "justifyContent": "", "justifyItems": "", "justifySelf": "", "left": "", "letterSpacing": "", "lightingColor": "", "lineBreak": "", "lineGapOverride": "", "lineHeight": "", "listStyle": "", "listStyleImage": "", "listStylePosition": "", "listStyleType": "", "margin": "", "marginBlock": "", "marginBlockEnd": "", "marginBlockStart": "", "marginBottom": "", "marginInline": "", "marginInlineEnd": "", "marginInlineStart": "", "marginLeft": "", "marginRight": "", "marginTop": "", "marker": "", "markerEnd": "", "markerMid": "", "markerStart": "", "mask": "", "maskType": "", "maxBlockSize": "", "maxHeight": "", "maxInlineSize": "", "maxWidth": "", "maxZoom": "", "minBlockSize": "", "minHeight": "", "minInlineSize": "", "minWidth": "", "minZoom": "", "mixBlendMode": "", "negative": "", "objectFit": "", "objectPosition": "", "offset": "", "offsetDistance": "", "offsetPath": "", "offsetRotate": "", "opacity": "", "order": "", "orientation": "", "orphans": "", "outline": "", "outlineColor": "", "outlineOffset": "", "outlineStyle": "", "outlineWidth": "", "overflow": "", "overflowAnchor": "", "overflowClipMargin": "", "overflowWrap": "", "overflowX": "", "overflowY": "", "overscrollBehavior": "", "overscrollBehaviorBlock": "", "overscrollBehaviorInline": "", "overscrollBehaviorX": "", "overscrollBehaviorY": "", "pad": "", "padding": "", "paddingBlock": "", "paddingBlockEnd": "", "paddingBlockStart": "", "paddingBottom": "", "paddingInline": "", "paddingInlineEnd": "", "paddingInlineStart": "", "paddingLeft": "", "paddingRight": "", "paddingTop": "", "page": "", "pageBreakAfter": "", "pageBreakBefore": "", "pageBreakInside": "", "pageOrientation": "", "paintOrder": "", "perspective": "", "perspectiveOrigin": "", "placeContent": "", "placeItems": "", "placeSelf": "", "pointerEvents": "", "position": "", "prefix": "", "quotes": "", "r": "", "range": "", "resize": "", "right": "", "rowGap": "", "rubyPosition": "", "rx": "", "ry": "", "scrollBehavior": "", "scrollMargin": "", "scrollMarginBlock": "", "scrollMarginBlockEnd": "", "scrollMarginBlockStart": "", "scrollMarginBottom": "", "scrollMarginInline": "", "scrollMarginInlineEnd": "", "scrollMarginInlineStart": "", "scrollMarginLeft": "", "scrollMarginRight": "", "scrollMarginTop": "", "scrollPadding": "", "scrollPaddingBlock": "", "scrollPaddingBlockEnd": "", "scrollPaddingBlockStart": "", "scrollPaddingBottom": "", "scrollPaddingInline": "", "scrollPaddingInlineEnd": "", "scrollPaddingInlineStart": "", "scrollPaddingLeft": "", "scrollPaddingRight": "", "scrollPaddingTop": "", "scrollSnapAlign": "", "scrollSnapStop": "", "scrollSnapType": "", "scrollbarGutter": "", "shapeImageThreshold": "", "shapeMargin": "", "shapeOutside": "", "shapeRendering": "", "size": "", "sizeAdjust": "", "speak": "", "speakAs": "", "src": "", "stopColor": "", "stopOpacity": "", "stroke": "", "strokeDasharray": "", "strokeDashoffset": "", "strokeLinecap": "", "strokeLinejoin": "", "strokeMiterlimit": "", "strokeOpacity": "", "strokeWidth": "", "suffix": "", "symbols": "", "syntax": "", "system": "", "tabSize": "", "tableLayout": "", "textAlign": "", "textAlignLast": "", "textAnchor": "", "textCombineUpright": "", "textDecoration": "", "textDecorationColor": "", "textDecorationLine": "", "textDecorationSkipInk": "", "textDecorationStyle": "", "textDecorationThickness": "", "textIndent": "", "textOrientation": "", "textOverflow": "", "textRendering": "", "textShadow": "", "textSizeAdjust": "", "textTransform": "", "textUnderlineOffset": "", "textUnderlinePosition": "", "top": "", "touchAction": "", "transform": "", "transformBox": "", "transformOrigin": "", "transformStyle": "", "transition": "", "transitionDelay": "", "transitionDuration": "", "transitionProperty": "", "transitionTimingFunction": "", "unicodeBidi": "", "unicodeRange": "", "userSelect": "", "userZoom": "", "vectorEffect": "", "verticalAlign": "", "visibility": "", "webkitAlignContent": "", "webkitAlignItems": "", "webkitAlignSelf": "", "webkitAnimation": "", "webkitAnimationDelay": "", "webkitAnimationDirection": "", "webkitAnimationDuration": "", "webkitAnimationFillMode": "", "webkitAnimationIterationCount": "", "webkitAnimationName": "", "webkitAnimationPlayState": "", "webkitAnimationTimingFunction": "", "webkitAppRegion": "", "webkitAppearance": "", "webkitBackfaceVisibility": "", "webkitBackgroundClip": "", "webkitBackgroundOrigin": "", "webkitBackgroundSize": "", "webkitBorderAfter": "", "webkitBorderAfterColor": "", "webkitBorderAfterStyle": "", "webkitBorderAfterWidth": "", "webkitBorderBefore": "", "webkitBorderBeforeColor": "", "webkitBorderBeforeStyle": "", "webkitBorderBeforeWidth": "", "webkitBorderBottomLeftRadius": "", "webkitBorderBottomRightRadius": "", "webkitBorderEnd": "", "webkitBorderEndColor": "", "webkitBorderEndStyle": "", "webkitBorderEndWidth": "", "webkitBorderHorizontalSpacing": "", "webkitBorderImage": "", "webkitBorderRadius": "", "webkitBorderStart": "", "webkitBorderStartColor": "", "webkitBorderStartStyle": "", "webkitBorderStartWidth": "", "webkitBorderTopLeftRadius": "", "webkitBorderTopRightRadius": "", "webkitBorderVerticalSpacing": "", "webkitBoxAlign": "", "webkitBoxDecorationBreak": "", "webkitBoxDirection": "", "webkitBoxFlex": "", "webkitBoxOrdinalGroup": "", "webkitBoxOrient": "", "webkitBoxPack": "", "webkitBoxReflect": "", "webkitBoxShadow": "", "webkitBoxSizing": "", "webkitClipPath": "", "webkitColumnBreakAfter": "", "webkitColumnBreakBefore": "", "webkitColumnBreakInside": "", "webkitColumnCount": "", "webkitColumnGap": "", "webkitColumnRule": "", "webkitColumnRuleColor": "", "webkitColumnRuleStyle": "", "webkitColumnRuleWidth": "", "webkitColumnSpan": "", "webkitColumnWidth": "", "webkitColumns": "", "webkitFilter": "", "webkitFlex": "", "webkitFlexBasis": "", "webkitFlexDirection": "", "webkitFlexFlow": "", "webkitFlexGrow": "", "webkitFlexShrink": "", "webkitFlexWrap": "", "webkitFontFeatureSettings": "", "webkitFontSmoothing": "", "webkitHighlight": "", "webkitHyphenateCharacter": "", "webkitJustifyContent": "", "webkitLineBreak": "", "webkitLineClamp": "", "webkitLocale": "", "webkitLogicalHeight": "", "webkitLogicalWidth": "", "webkitMarginAfter": "", "webkitMarginBefore": "", "webkitMarginEnd": "", "webkitMarginStart": "", "webkitMask": "", "webkitMaskBoxImage": "", "webkitMaskBoxImageOutset": "", "webkitMaskBoxImageRepeat": "", "webkitMaskBoxImageSlice": "", "webkitMaskBoxImageSource": "", "webkitMaskBoxImageWidth": "", "webkitMaskClip": "", "webkitMaskComposite": "", "webkitMaskImage": "", "webkitMaskOrigin": "", "webkitMaskPosition": "", "webkitMaskPositionX": "", "webkitMaskPositionY": "", "webkitMaskRepeat": "", "webkitMaskRepeatX": "", "webkitMaskRepeatY": "", "webkitMaskSize": "", "webkitMaxLogicalHeight": "", "webkitMaxLogicalWidth": "", "webkitMinLogicalHeight": "", "webkitMinLogicalWidth": "", "webkitOpacity": "", "webkitOrder": "", "webkitPaddingAfter": "", "webkitPaddingBefore": "", "webkitPaddingEnd": "", "webkitPaddingStart": "", "webkitPerspective": "", "webkitPerspectiveOrigin": "", "webkitPerspectiveOriginX": "", "webkitPerspectiveOriginY": "", "webkitPrintColorAdjust": "", "webkitRtlOrdering": "", "webkitRubyPosition": "", "webkitShapeImageThreshold": "", "webkitShapeMargin": "", "webkitShapeOutside": "", "webkitTapHighlightColor": "", "webkitTextCombine": "", "webkitTextDecorationsInEffect": "", "webkitTextEmphasis": "", "webkitTextEmphasisColor": "", "webkitTextEmphasisPosition": "", "webkitTextEmphasisStyle": "", "webkitTextFillColor": "", "webkitTextOrientation": "", "webkitTextSecurity": "", "webkitTextSizeAdjust": "", "webkitTextStroke": "", "webkitTextStrokeColor": "", "webkitTextStrokeWidth": "", "webkitTransform": "", "webkitTransformOrigin": "", "webkitTransformOriginX": "", "webkitTransformOriginY": "", "webkitTransformOriginZ": "", "webkitTransformStyle": "", "webkitTransition": "", "webkitTransitionDelay": "", "webkitTransitionDuration": "", "webkitTransitionProperty": "", "webkitTransitionTimingFunction": "", "webkitUserDrag": "", "webkitUserModify": "", "webkitUserSelect": "", "webkitWritingMode": "", "whiteSpace": "", "widows": "", "width": "", "willChange": "", "wordBreak": "", "wordSpacing": "", "wordWrap": "", "writingMode": "", "x": "", "y": "", "zIndex": "", "zoom": "" }; html.addEventListener = function addEventListener(type,listener){ debugger; if(catvm.memory.html_addEventListen[type] == undefined){ catvm.memory.html_addEventListen[type] = [] } catvm.memory.html_addEventListen[type].push(listener); return undefined };catvm.safefunction(html.addEventListener); //没问题 html.getAttribute = function getAttribute(){ debugger; return null };catvm.safefunction(html.getAttribute); document.documentElement = catvm.proxy(html) document.documentElement.__proto__ = HTMLHtmlElement.prototype; window.HTMLAnchorElement = function HTMLAnchorElement() { throw new TypeError("Illegal constructor") };catvm.safefunction(window.HTMLAnchorElement) document = catvm.proxy(document) catvm.print.open=true; debugger; win_ts; first_InnerJs; console.log(document.cookie) debugger; catvm.memory.setTimeout_func[0]() //执行定时器 debugger; function get_cookie(){ return document.cookie }