目的

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. SpringMVC - 谈谈你对SpringMVC的理解

    谈谈你对 Spring MVC 的理解? 普通人:Spring MVC 它是一个MVC框架吧,就是,我们可以使用Spring MVC来开发Web应用...呃 它是基于Servlet上的一个扩展,就是它 ...

  2. win - [01] 修改网络连接名称(网络1、网络2...网络10)

    修改网络连接的名称 1.打开运行窗口:Windows 键 + R 2.在运行窗口输入 regedit,打开注册表编辑器 3.在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...

  3. html5文本标签

    标题文本 h1.h2.h3.h4.h5.h6 其中 h1.h2.h3是比较常用的.h3.h4.h5.h6相对来说用的会少一点,除非结构层次比较深才会使用. 段落文本 p <p>这是一个段落 ...

  4. Vulnhub-election靶机

    总结:本靶机给了很多目录,对于信息收集考察的比较严格,给了一个数据库,很多时候容易陷进去,拿到用户权限登录后,也需要大量的信息收集,虽然可以在数据库里找到root和密码,但是不是靶机本身的,最终利用s ...

  5. mdn拾遗-- 纯html+css实现的input的验证

    关于input的验证,其实从很古老的前端时代开始就一直采用一种比较可靠的方式,就是js操作dom,今天浏览mdn时发现了h5的验证方法,很是兴奋.感觉值得一记. 说在前面的话,着重就是配合h5 + c ...

  6. New Bing 全面开放?我看未必

    前段时间大家应该都被ChatGPT刷屏了,其实就回答来说New Bing 才是最厉害的,因为它底层使用了ChatGPT 并且可以支持联网查询数据,回答中还能支持看到出处,方便确认其真实性. New B ...

  7. SpringBoot + 布隆过滤器:亿级数据下的高效防护盾与缓存穿透实战指南

    在当今高并发.海量数据的应用场景中,布隆过滤器凭借其极低的内存占用和极快的查询效率,成为解决缓存穿透.数据预判等难题的利器.本文深度解析布隆过滤器的核心原理与实战应用,手把手教你如何将这一数据守门员融 ...

  8. 【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)

    [虚拟机]Windows(x86)上部署ARM虚拟机(Ubuntu) 零.起因 最近在学嵌入式,这就不得不涉及ARM指令集,但是电脑是x86指令集的,用手机不太方便,买开发板又要等几天--,总之就是要 ...

  9. 免费在线试用 200+ Linux 和 Unix 操作系统

    Linux 和 Unix 存在着各种各样的发行版本,有的界面美观,有的功能强大,想要尝试不同的 Linux 和 Unix 操作系统,你可能会烦于进行本地安装.不急,今天,我们来介绍一个强大的服务,Di ...

  10. CH9121 FTP使用详解

    一.FTP简介: FTP是基于TCP应用层的网络文件传输协议,支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式).采用明文通信不加密. 1.Port模式 ...