目的

navigator.hardwareConcurrency 可用于获取当前设备的 CPU 逻辑核心数量。这一信息常被用于识别用户设备等级或作为浏览器指纹的一部分参与反欺诈系统分析。

通过伪造该信息,可以有效隐藏真实硬件配置,增强浏览器的防关联与隐私保护能力。

教学目标

  • 了解 JS 层如何读取 CPU 核心数
  • 掌握 Chromium C++ 层源码修改方式,实现 CPU 指纹伪造

JS 获取核心数

打开浏览器,按下 F12 进入控制台,输入以下代码查看当前系统的逻辑核心数:

navigator.hardwareConcurrency

示例输出:

20

这说明你当前设备为 20 核心 CPU(高并发服务器可能存在此情况),这类信息极易被用于唯一化识别,因此需伪造。


️ C++ 源码修改方法(Chromium 定制版)

在 Easybr 指纹浏览器中,我们通过修改 Chromium 源码内的相关模块来实现该参数的伪造。

修改位置示例:

navigator_concurrent_hardware.cc
unsigned NavigatorConcurrentHardware::hardwareConcurrency() const {
// ebb
base::Easybrparam param;
std::string device_concurrency = param.GetValue("hardware.concurrency");
if (!device_concurrency.empty()) {
int value = std::stoi(device_concurrency);
return static_cast<unsigned>(value);
}
// ebb end
return static_cast<unsigned>(base::SysInfo::NumberOfProcessors());
}

解释:

  • base::Easybrparam:为 Easybr 内部参数获取类,可从配置文件或命令行读取设置值。
  • 若用户设置了 navigator.hardwareConcurrency=8,则返回伪造后的 8 核;
  • 否则默认使用系统真实核心数。

测试网站推荐

验证修改是否生效可通过以下平台:


总结

通过伪造 navigator.hardwareConcurrency,我们能有效隐藏真实设备的处理器核心数,避免被用于浏览器指纹识别与设备关联分析。这一参数常与内存、显卡、WebGL、Canvas、Audio 等多个指纹模块联合使用,构成完整的设备画像。

结合 Easybr 提供的底层参数注入机制,可轻松实现定制化的 CPU 指纹配置,并通过浏览器参数/配置文件控制,无需重新编译,灵活易用,适用于跨境电商、账号运营、反检测等高匿名场景。

6 指纹浏览器 CPU 核心数伪装教程的更多相关文章

  1. 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

    不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).a ...

  2. using 40 logical processors based on SQL Server licensing SqlServer CPU核心数限制问题

    公司服务器是120核心cpu,但是实际应用中只有40核,原因是业务部门发现服务器cpu承载30%的时候sql 就会卡死: 然后从sqlserver 去查询,cpu核心数: SELECT COUNT(1 ...

  3. Nginx 关于进程数 与CPU核心数相等时,进程间切换的代价是最小的-- 绑定CPU核心

    在阅读Nginx模块开发与架构模式一书时: "Nginx  上的进程数 与CPU核心数相等时(最好每个worker进程都绑定特定的CPU核心),进程间切换的代价是最小的;" &am ...

  4. 如何查看服务器CPU核心数和线程数

    知道服务器CPU型号,那么我们如何在服务器里面查看服务器CPU核心数和线程数呢? 步骤: 先用鼠标右键点击屏幕最下方的任务栏空白处.会弹出一个菜单. 在菜单中用鼠标左键点选“启动任务管理器”. 点击任 ...

  5. 查看电脑CPU核心数的方法

    查看电脑CPU核心数的方法: 方法一: 同时按下[Ctrl+Shift+Esc]组合快捷键打开任务管理器: 点击[性能]就可以看出是几核CPU了: 方法二: 在计算机图标上面点击右键,选择“管理”: ...

  6. Android下设置CPU核心数和频率

    现在的Android手机双核.四核变得非常普遍,同时CPU频率经常轻松上2G,功耗肯定会显著增加.而大多数的ARM架构的CPU采用的是对称多处理(SMP)的方式处理多CPU.这就意味着每个CPU核心是 ...

  7. 物理CPU数、CPU核心数、进程数

    参考CSDN博客:https://blog.csdn.net/helloworld0906/article/details/90547159 一. 物理cpu数.cpu核数.线程数(逻辑cpu数)的关 ...

  8. 根据CPU核心数确定线程池并发线程数(转)

    一.抛出问题 关于如何计算并发线程数,一般分两派,来自两本书,且都是好书,到底哪个是对的?问题追踪后,整理如下: 第一派:<Java Concurrency in Practice>即&l ...

  9. 如何获取 Android CPU 核心数 (Java/C++)

    1 前言 最近学习Power HAL方面相关知识,透过Power HAL 去配置CPU的Freq需要先确定 CPU 核数.便先了解如何获取 Android CPU 核数. 2 Java层获取方式 // ...

  10. 转 根据CPU核心数确定线程池并发线程数

    转自: https://www.cnblogs.com/dennyzhangdd/p/6909771.html?utm_source=itdadao&utm_medium=referral 目 ...

随机推荐

  1. TDH - 使用DBeaver连接InceptorSQL

    TDH版本:TDH 4.3.x DBeaver版本:dbeaver-ce-23.0.4-win32.win32.x86_64 1.下载客户端(即为DBeaver连接InceptorSQL所需的驱动包) ...

  2. 【目标检测】一、初始的R-CNN与SVM

    1.流程 为什么要用SVM而不是CNN最后一层的softmax? 取什么模型必然是有标准衡量,这个流程取得是书上[4]写的,作者说他得实验证明SVM比FC的mAP要高,所以我流程暂且这样画了. R-C ...

  3. google浏览器删除token

    测试登录时长,页面是否返回到首页 删除token

  4. css 保留后端 textarea 中的换行与空格字符

    原文链接:https://blog.jijian.link/2020-10-22/css-pre/ 如果后台使用 textarea 输入内容,在前段显示需要保留换行符与空白字符,该如何做? 常规方法 ...

  5. 什么!你还不会写Vue组件,编写《功能级权限》匹配公式组件

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  6. dxSpreadSheet的报表demo-关于设计报表模板问题

    学习 dxSpreadSheetReportDesigner过程中发现: dxSpreadSheet通过dxSpreadSheetReportDesigner点击右键出现弹出菜单,自动生成如图的菜单和 ...

  7. halcon 入门教程(三) 边缘检测

    原文作者:aircraft 原文链接:halcon 入门教程(三) 边缘检测 有兴趣可以多看其他的halcon教程 halcon 学习教程目录 本篇讲一下边缘检测(边缘提取),因为这个我发现也是比较常 ...

  8. 老生再谈 IoC

    IoC,Spring的核心理念之一,确实这是一个老生常谈的东西.但是今天呢!又重新温习之后,想再说说自己对IOC的一些想法. IoC--Inversion of Control,控制反转.要想理解Io ...

  9. 基于AST实现国际化文本提取

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 前言 在阅读本文之前,需要读者有一些 babel 的 ...

  10. soapUI参数化总结

    1.新建项目目录 以获取用户贡献等级为例,目录如下: 2.添加DataSource和DataSource Loop 选中Test Step右键分别新建DataSource和DataSource Loo ...