赞
踩
今天分享是是浏览器环境检测以及node js补环境
我们点击检测设备信息看发出的请求,可以看到是sign和data
这个data看起来像base64,我们试一下,发现不是
可以看到经过混淆了
我们选中看一下
那我们接下来就知道了,要逆向的两个参数变量
_0x392f2d
_0xd9e63f
我们直接把整个文件拷贝到webstrom里,看一下这两个变量在哪里定义的,可以看到在这
由于我们只需要这两个变量,所以下面的代码可以删除了,变成这样
然后引入proxy检测对象变化的代码
proxy.js
let _window = { }; let _stringify = JSON.stringify; JSON.stringify = function (Object) { // ?? 的意思是,如果 ?? 左边的值是 null 或者 undefined,那么就返回右边的值。 if ((Object?.value ?? Object) === global) { return "global"; } return _stringify(Object); }; function getMethodHandler(WatchName) { let methodhandler = { apply(target, thisArg, argArray) { let result = Reflect.apply(target, thisArg, argArray); console.log(`[${ WatchName}] apply function name is [${ target.name}], argArray is [${ argArray}], result is [${ result}].`); return result; }, construct(target, argArray, newTarget) { let result = Reflect.construct(target, argArray, newTarget); console.log(`[${ WatchName}] construct function name is [${ target.name}], argArray is [${ argArray}], result is [${ JSON.stringify(result)}].`); return result; } }; return methodhandler; } function getObjHandler(WatchName) { let handler = { get(target, propKey, receiver) { let result = Reflect.get(target, propKey, receiver); if (result instanceof Object) { if (typeof result === "function") { console.log(`[${ WatchName}] getting propKey is [
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。