目的

navigator.userAgent 是浏览器中最常被网站读取的属性之一,用于识别浏览器内核、版本、操作系统信息,甚至设备类型。它是构成浏览器指纹的关键字段,广泛应用于用户识别、设备分类、风控策略中。

通过伪造 User-Agent,可隐藏真实设备与浏览器信息,从而增强隐私保护与账号防关联能力。


教学目标

  • 了解 JS 层如何读取 User-Agent
  • 掌握在 Chromium C++ 层实现 User-Agent 指纹伪造的方式
  • 掌握 Easybr 浏览器如何通过参数配置实现动态替换

JS 获取 User-Agent

打开浏览器,按下 F12 进入控制台,输入以下代码查看当前浏览器 UA 信息:

navigator.userAgent

示例输出:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.3029.110 Safari/537.3

这条信息暴露了操作系统、位数、浏览器内核及版本,非常容易被网站用作唯一标识。


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

在 Easybr 指纹浏览器中,User-Agent 可通过底层源码伪造,也可通过命令行或配置动态注入。

方式一:命令行注入(推荐)

--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15"

可通过配置启动参数或在 Easybr 环境配置中设置自定义 UA

方式二:源码层注入

修改文件:content/browser/renderer_host/render_process_host_impl.cc

伪代码参考:

std::string user_agent = base::Easybrparam::GetValue("navigator.userAgent");
if (!user_agent.empty()) {
command_line->AppendSwitchASCII(switches::kUserAgent, user_agent);
}

解释:

  • 使用 base::Easybrparam 从配置文件读取伪造的 UA 字符串;
  • 注入到 kUserAgent 启动参数;
  • 全局替换浏览器 UA 输出,包括 navigator.userAgent 与 HTTP 请求头。

测试网站推荐

验证 User-Agent 修改是否成功可以使用以下平台:


总结

通过伪造 navigator.userAgent,可以有效隐藏真实设备操作系统、浏览器类型与版本信息,是对抗指纹识别的重要手段。相比静态设置,Easybr 支持通过命令行参数或配置文件动态控制 User-Agent,更灵活适配多账号环境。

配合 Canvas、WebGL、Audio、语言、字体、分辨率等多项指纹模块伪造,能构建出完整且不可追踪的浏览器环境,广泛应用于跨境电商、广告营销、自动化运营等对隐私要求极高的场景。

7 指纹浏览器 User-Agent 指纹伪装教程的更多相关文章

  1. FingerprintJS - 在浏览器端实现指纹识别

    FingerprintJS 是一个快速的浏览器指纹库,纯 JavaScript 实现,没有依赖关系.默认情况下,使用 Murmur Hash 算法返回一个32位整数.Hash 函数可以很容易地更换. ...

  2. 火狐浏览器油猴子GreaseMonkey使用教程

    火狐浏览器油猴子GreaseMonkey使用教程 首先下载火狐浏览器 安装成功后用火狐浏览器打开链接,界面如下 然后搜索GreaseMonkey. 搜索结果,图标是个小猴子,然后添加到火狐浏览器,成功 ...

  3. 为什么浏览器User Agent中都有个mozilla

    你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ...

  4. 修改浏览器的User-Agent来伪装你的浏览器和操作系统

    近期很多文章都提到了User-Agent (UA) 字符串,但大部分网友都不知道这个东西有什么用处.其实简单的说User-Agent就是客户端浏览器等应用程序使用的一种特殊的网络协议,在每次浏览器(邮 ...

  5. 设置两个div是总是不能重合,浏览器user agent stylesheet问题

    如图 两个div之间总是有一个空行,设置了margin为0还是没卵用,f12调试发现 多了一个user agent stylesheet样式,经百度是浏览器自带的样式 重新为div内的元素ul设置cs ...

  6. Google Chrome谷歌/火狐/Safari浏览器开发者工具基本使用教程

    前言 在阅读下面内容之前,那么些简单的了解浏览器开发者工具到底是什么东西,到底有什么用途. 浏览器开发者工具到底是什么? 其实简单的说,浏览器开发者工具就是给专业的web应用和网站开发人员使用的工具, ...

  7. 微信浏览器——User Agent

    在iPhone 返回 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gec ...

  8. python之urllib.request.urlopen(url)报错urllib.error.HTTPError: HTTP Error 403: Forbidden处理及引申浏览器User Agent处理

    最近在跟着院内大神学习python的过程中,发现使用urllib.request.urlopen(url)请求服务器是报错: 在园子里找原因,发现原因为: 只会收到一个单纯的对于该页面访问的请求,但是 ...

  9. Chrome改动浏览器User Agent

    对浏览器快捷方式右键->改动目标项为 C:\Users\LJ\AppData\Local\Google\Chrome\Application\chrome.exe --user-agent=&q ...

  10. 各种浏览器的agent信息(IE Chrome Safari Firefox)

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/53 ...

随机推荐

  1. docker - [16] Swarm集群搭建

    以下是购买的阿里云服务器ECS的四个实例,确保四台服务器互相可以ping通. 一.环境准备(安装docker) (1)安装gcc相关环境(在四台服务器上) yum -y install gcc yum ...

  2. cmd - windows操作系统命令提示符常用命令

    mklink /j C:\Users\lin_0421\Desktop\note D:\note

  3. Flink学习(十九) 容错机制

    主要内容: 一致性检查点(checkpoint) 从检查点恢复到状态 Flink检查点算法 保存点(savepoint) 一致性检查点(checkpoint) Flink故障恢复机制的核心,就是应用状 ...

  4. HTTP协议与RESTful API实战手册(终章):构建企业级API的九大秘籍 🔐

    title: HTTP协议与RESTful API实战手册(终章):构建企业级API的九大秘籍 date: 2025/2/28 updated: 2025/2/28 author: cmdragon ...

  5. cudatooklit安装记录_windows

    Windows本地部署deepseek,使用速度不是很理想,在此尝试使用GPU加速 在cmd中使用命令查看支持的版本 nvidia-smi 注意对应的 Driver Version,根据Nvidia给 ...

  6. java web 传输视频流代码锦集

    方案一 //path为本地文件路劲 public void play(String path, HttpServletRequest request, HttpServletResponse resp ...

  7. 查看、安装python指定版本的包、安装卸载第三方模块

    python安装/卸载第三方包 (1)安装第三方包: 安装指令pip install xxx (xxx,需安装的包名) 安装特定版本的package:通过使用==, >=, <=, > ...

  8. 编写你的第一个 Django 应用程序,第2部分

    接着上次第1部分开始,现在我们将设置数据库,创建您的第一个模型,并快速获得 介绍 Django 自动生成的管理站点. 一.数据库设置 现在,打开.这是一个普通的 Python 模块,具有 表示 Dja ...

  9. MySQL常用SQL 语句

    --备份数据库 mysqldump -u用户名 -h主机名 -p密码 数据库名 > filename.sql --备份数据库中的某个表 mysqldump -u用户名 -h主机名 -p密码 数据 ...

  10. substring( )的两种用法?

    xx.substring()括号中带的参数不一样,效果就会有很大的区别 1.xx.substring(0,2)表示取第一个和第二个字符(0,1,2表示第一.二.三个字符,含头不含尾的原则就只包含第一. ...