用fw做明星的网站移动端什么意思
声明:
 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
 
逆向前言
12月份的时候更新了过一次变的很恶心,这几次更新都是针对补环境的,对自动化和纯算选手应该没啥难度。
逆向过程
随便拷贝了一些数组来说一下
52是window检测。
70是检测了事件。
77检测了localStorage
104是navigator检测
118是performace其他就比较固定没啥要说的。
其他的就比较规定没啥好说的直接扣代码,补环境都一样逻辑。
- 48: 1
 - 49: ""
 - 51: -1
 - 52: 255
 - 53: 108
 - 54: 0
 - 55: 0
 - 60: 0
 - 62: (8) [0, 0, 1, 148, 187, 55, 184, 104]
 - 66: 0
 - 68: 1
 - 69: 0
 - 70: [Array(4)]
 - 71: 0
 - 72: 0
 - 73: []
 - 74: 0
 - 77: [Array(3)]
 - 79: ƒ anonymous( )
 - 80: []
 - 83: []
 - 84: []
 - 88: Fri Jan 31 2025 15:16:18 GMT+0800 (中国标准时间) {toString: ƒ}
 - 92: 0
 - 95: WebGLRenderingContext {canvas: canvas, drawingBufferWidth: 300, drawingBufferHeight: 150, drawingBufferColorSpace: 'srgb', unpackColorSpace: 'srgb', …}
 - 96: false
 - 98: (4) [2, 2, 2, 2]
 - 100: 0
 - 101: 0
 - 104: 122357266022
 - 105: 2
 - 107: 2
 - 111: 1738307778664
 - 112: 1
 - 113: 0
 - 115: []
 - 116: []
 - 117: 1
 - 120: 0
 - 122: 1
 - 125: -1
 - 126: 0
 
部分补环境代码
建议补环境用jsdom比较友好。
const jsdom = require('jsdom');
const canvas = require('canvas');
const {JSDOM} = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`, {url: ''
});
window = dom.window;
XMLHttpRequest = window.XMLHttpRequest;
document = window.document;  //document对象:代表给定浏览器窗口中的HTML文档,
navigator = window.navigator; // 关于运行当前脚本的应用程序的相关信息
location = window.location; //对象包含当前页面的URL信息
history = window.history; // 历史会话
screen = window.screen; // 浏览器屏幕
document.referrer = ""
setInterval = function () {
}
setTimeout = function () {
} 
结果

总结
1.能用自动化就自动化,毕竟231更了很多个版本对最主流自动化爬虫框架基本没检测。后续用自动化在实现一个tx的231。
2.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。
