我相信现在上网广告太多,广告多不可怕,可怕的是广告脚本在偷偷搜集你的个人信息,把你的爱好行踪掌握的一清二楚,不信你电商买个东西,很快就给你推荐几十个,很明显跟踪你的信息了!
于是我研究了一段时间,开发了个虚拟人插件,主要功能我列出表格,顺手贴几张图,排版有点乱,我没时间修改了,就这样凑合看吧,内容细节很多,可以以后慢慢聊:
1.虚拟人
| 功能项 |
说明 |
| 地理信息 (国家/城市/时区/语言/locale) |
persona-schema.js geo 对象 |
| 设备硬件 (CPU核数/内存/平台/GPU) |
hardware + fingerprint |
| 屏幕信息 (分辨率/色深/DPR) |
browser 对象 |
| 浏览器信息 (UA/插件/mimeTypes) |
browser 对象 |
| 指纹参数 (CanvasSeed/WebGL/Audio) |
fingerprint 对象 |
| 网络配置 (代理/DNS/带宽) |
network 对象 |
| 广告ID (AAID/IDFA/GoogleAdId) |
adIds 对象 |
| 兴趣标签 (分类/关键词/搜索历史) |
generatePersona() 含 US/CN/JP/DE/UK 等 |
| Persona 生成器 (多国预设) |
validatePersona() 检查 Geo/IP/UA/时区矛盾 |
| Persona 导入/导出 |
IMPORTPERSONA / EXPORTPERSONA |


Navigator & Screen 2.环境虚拟化
| 功能项 |
详情 |
| Navigator 全属性覆盖 |
30+ 属性 (platform/language/hardwareConcurrency/webdriver等) |
| User-Agent Client Hints |
brands/mobile/platform 覆盖 |
| Screen 宽高/可用宽高/色深 |
screen.width/height/colorDepth/pixelDepth |
| 时区虚拟化 |
Date.prototype / Intl.DateTimeFormat 全面覆盖 |
| 语言虚拟化 |
navigator.language/languages |
| 插件列表虚拟化 |
PluginArray/Plugin/MimeType 模拟 |
| Permissions API |
navigator.permissions.query 覆盖 |
| 电池状态 |
navigator.getBattery() 拦截 |
| 传感器 (DevMotion/Orientation) |
事件拦截返回null |
| Geolocation |
getCurrentPosition/watchPosition 覆盖 |
| Worker/ServiceWorker 检测 |
Worker.prototype.constructor 覆盖 |
| Performance.memory |
虚拟化 |
| chrome 对象补全 |
防止通过 window.chrome 检测 |
| EventTarget 拦截 |
addEventListener 覆盖 |
3.Canvas / WebGL / Audio 指纹扰动
| 功能项 |
详情 |
| Canvas toDataURL 噪声 |
添加像素偏移(每像素10%概率±1扰动) |
| Canvas getImageData 噪声 |
RGBA 扰动 |
| Canvas toBlob 噪声 |
同 toDataURL |
| WebGL getParameter |
16+ 参数覆盖 (VENDOR/RENDERER/MAX_TEXTURE等) |
| WebGL getExtension |
拦截 Debug Renderer Info |
| WebGL readPixels |
噪声注入 |
| WebGL 纹理/缓冲区检测 |
关键指纹参数虚拟化 |
| AudioContext 指纹扰动 |
getChannelData / getFloatFrequencyData |
| 字体列表虚拟化 |
document.fonts.check/load/ready/size |
| ClientRects 噪声 |
getBoundingClientRect / getClientRects |
| WebGPU 指纹 |
navigator.gpu.requestAdapter 覆盖 |
| WebAssembly 检测防护 |
WebAssembly.instantiate/Memory 覆盖 |
4. Storage 沙箱
| 功能项 |
详情 |
| localStorage 虚拟化 |
Proxy 完整拦截 setItem/getItem/removeItem/clear |
| sessionStorage 虚拟化 |
Proxy 实现 |
| Cookie 拦截 |
document.cookie getter/setter 拦截 |
| IndexedDB 虚拟化 |
open/deleteDatabase/databases 命名空间过滤 |
| CacheStorage 虚拟化 |
caches.open/has/delete/keys 覆盖 |
| FileSystem Access 虚拟化 |
showOpenFilePicker/showSaveFilePicker等拦截 |
| Storage 配额 |
navigator.storage.estimate 覆盖 |
| Persona 独立存储 |
按 personaId 隔离,支持切换和销毁 |
| 存储持久化 |
beforeunload 时回写 Background |
5. 数据上报拦截
| 功能项 |
详情 |
| fetch 拦截 |
window.fetch Proxy 重写URL/body/headers |
| XHR 拦截 |
XMLHttpRequest.prototype.send/open/abort |
| sendBeacon 拦截 |
navigator.sendBeacon 替换body |
| WebSocket 拦截 |
WebSocket prototype 替换URL/数据 |
| 响应拦截 |
fetch response.clone() 处理 |
| 请求体重写 |
rewriteBody 递归替换 Persona 数据 |
| 标识注入 |
injectPersonaData 覆盖 adIds/userIds/deviceIds |
6. 行为模拟
| 功能项 |
详情 |
| 鼠标移动 (贝塞尔曲线) |
三次贝塞尔 + 微抖动 + 过冲 + 加减速 |
| 鼠标点击 |
随机延迟 (150-500ms) + 位置偏移 |
| 自然滚动 |
silent wheel + smooth scroll + 回弹 |
| 滚动条拖拽 |
概率触发 ± 拖拽+微调 |
| 键盘输入 |
正态分布打字延迟 (120±30ms) |
| 触控模拟 |
TouchSimulator (tap/swipe/pinch) |
| 兴趣标签生成 |
基于 Persona 的 categories/keywords |
| 搜索关键词模拟 |
虚拟搜索行为 |
| 页面停留 |
readingTime 参数 |
| 多页访问序列 |
visitedDomains 时序模拟 |
7. 行为学习 (录制→分析→优化)
| 功能项 |
详情 |
| 真人行为录制 |
behavior-recorder.js 自动录制鼠标/滚动/键盘 |
| 轨迹打包 |
鼠标轨迹/滚动序列/键盘序列分离采集 |
| 批量上传 |
BATCH_SIZE=10, 30s间隔上传 Background |
| FIFO 缓冲 |
MAX_RECORDS=500, 超限自动丢弃 |
| 行为特征提取 |
behavior-analyzer.js 6维度统计分析 |
| 参数优化 |
behavior-optimizer.js 坐标下降 + Wasserstein |
| 档案管理 |
behavior-profile-manager.js CRUD + 导出/导入 |
| Popup 控制 |
录制开关/暂停/优化触发/档案切换 |
8. 反检测与安全
| 功能项 |
详情 |
| webdriver = false |
所有 Persona 强制 false |
| toString 伪装 ([native code]) |
被Hook函数的 toString 保留原生 |
| console API 过滤 |
console.debug 过滤 VPerson 扩展痕迹 |
| Error.stack 清理 |
扩展路径替换为 CDN 域名 |
| DevTools 检测器 |
debugger 时间差检测 (默认禁用) |
| MutationObserver 监控 |
检测可疑 fingerprint 脚本注入 |
| iframe 环境同步注入 |
SRCDOC/BLOB iframe 也注入虚拟化 |
| Notification API 虚拟化 |
拦截阻止 |
| History API 虚拟化 |
length pushState/replaceState 覆盖 |
| WakeLock / Payment / Credential |
全部覆盖为不可用状态 |
| BLE / USB / Serial / HID |
全部覆盖为不可用 |
| Clipboard / Share / Contacts |
全部覆盖 |
| measureUserAgentSpecificMemory |
拦截替换 |
9. 网络与代理
| 功能项 |
详情 |
| Proxy 设置 (HTTP/HTTPS/SOCKS5) |
chrome.proxy.settings |
| 代理轮换 |
startProxyRotation / stopProxyRotation |
| IP-Geo 自动匹配 |
每30s 检测出口IP,不匹配自动切换代理 |
| TLS 指纹伪装 |
onHeadersReceived 修改 Via / Alt-Svc 头 |
| HTTP 协议伪装 |
onBeforeSendHeaders 添加 Accept-CH / Priority |
| 追踪域名拦截 |
编码追踪域名黑名单 |
| WebRTC IP 过滤 |
setLocalDescription 过滤本地 IP |
| DNS 代理 |
仅保存配置,受限于 Chrome API |
10. Popup UI
| 功能项 |
详情 |
| Persona 管理面板 (CRUD/切换) |
列表/激活/编辑/删除/新建 |
| Persona 一致性展示 |
时区/IP/UA 配套校验 + 警告 |
| 指纹状态面板 |
Canvas/WebGL/Audio/存储 状态展示 |
| 网络状态面板 |
请求统计/拦截计数/代理状态 |
| 日志面板 |
实时日志查看 + 过滤 |
| 设置面板 |
行为录制控制 + 档案管理 |


所有评论(0)