chromium随机WebGL

chromium随机WebGL

简介

WebGL(Web Graphics Library)是一种用于在浏览器中渲染3D图形的JavaScript API,俗称硬件显卡型号。WebGL指纹是一种通过浏览器对用户进行唯一标识的技术。它基于用户设备的硬件和软件信息,如GPU型号、驱动程序版本、操作系统等,创建一个唯一的标识符。这种指纹技术可以被用于用户跟踪、数据分析、以及数字广告定向投放等用途。

什么是WebGL指纹

您可以看到两种 WebGL 指纹:

  1. WebGL 报告
    整个 WebGL 浏览器报告表的哈希值,其中包含上述所有 WebGL 功能和支持的扩展的列表。哈希取自支持的最高 WebGL 上下文转储。
  2. WebGL 图像
    通过绘制 WebGL 渐变着色器创建的像素数组的哈希值。借鉴了Fingerprintjs2库的绘制功能,目前正在研究生成图像的唯一性百分比。
    获取哈希的方法仅涉及 WebGL API,并且不依赖于浏览器在 toDataURL PNG 导出中的差异,因此此指纹在单个设备中的浏览器之间可能相似。

通过源码定位修改的地方

搜索前边的 unmasked vendor/和renderer ,修改厂商信息和显卡信息

定位在E:\chromium\src\third_party\blink\renderer\modules\webgl\webgl_rendering_context_base.cc文件内

修改

  1. 准备随机显卡信息头文件
    #include <iostream>
    #include <cstring>
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>

    int randomGPU(int x) {
	    return rand() % x;
    }

    String GetGPUList() {
	    srand((int)time(0));
	    String GPUList[] = {
		    "ANGLE (AMD, AMD, Radeon (TM) RX 470 Graphics Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.1034.6)",
		    "ANGLE (Intel, Intel(R) HD Graphics 6000 Direct3D11 vs_5_0 ps_5_0, D3D11-20.19.15.5126)",
		    "ANGLE (NVIDIA, NVIDIA GeForce GTX 950 Direct3D9Ex vs_3_0 ps_3_0)",
		    "ANGLE (NVIDIA, NVIDIA Quadro P1000 Direct3D11 vs_5_0 ps_5_0)",
		    "ANGLE (NVIDIA, NVIDIA Corporation, GeForce GTX 950M/PCIe/SSE2, OpenGL 4.5 core)"
	    };
	    return GPUList[randomGPU(5)];
    }
  1. 引入头文件到webgl_rendering_context_base.cc中
  2. 修改代码如下
  3. 修改效果如下
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行侠-Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值