013.随机指纹chromium编译-如何通过传参来固定指纹

随机指纹chromium编译-如何通过传参来固定指纹

由于要所有的类型的指纹都实现固定,工作量太大,这里我只用plugins指纹作为示例。

一、为什么要固定指纹

  • 目标:启动浏览器时,加上参数--fingerprints="xxxxxxx", 参数变化时,指纹也会跟着变化。打开网页后的后续访问指纹都不会再变化。
  • 广泛用于一些电商平台

二、什么是plugins指纹:

  • 之前有介绍过plugins指纹和如何修改:插眼传送

三、重新修改源码

  • 打开源码 third_party/blink/renderer/modules/plugins/dom_plugin.cc
1.头部加上(随便加在一个#include后面,之前加过就不用加了)
#include <random>
#include <string>
2.找到下面的代码
String DOMPlugin::description() const {
  return plugin_info_->Description();
}
3.替换为
String DOMPlugin::description() const {
  //return plugin_info_->Description();
  base::CommandLine* base_command_line = base::CommandLine::ForCurrentProcess();
  std::string tmp;
  if (base_command_line->HasSwitch("fingerprints")) {
	  tmp = base_command_line->GetSwitchValueASCII("fingerprints"); 
  }else{
	  tmp = base_command_line->GetSwitchValueASCII("type"); 
  }
  // LOG(ERROR) << "tmp:('" << tmp << "') tmp";
  String res = plugin_info_->Description();
  return res + String(tmp);
}

代码的原理是给每个plugin的description末尾追加上–fingerprints获取的字符串。

4.编译
ninja  -C  out/Default chrome

四、render进程追加参数

打开资源浏览器就可以发现,chromium默认使用的是多进程
启动浏览器的参数默认又只能传给主进程,所以我们还要改进程创建程序,将参数传给子进程。

  • 打开源码:\content\browser\renderer_host\render_process_host_impl.cc
1.找到下面的代码
command_line->AppendSwitchASCII(switches::kProcessType,
                                  switches::kRendererProcess);
2.替换为
command_line->AppendSwitchASCII(switches::kProcessType,
                                  switches::kRendererProcess);

//追加					  
const base::CommandLine* base_command_line = base::CommandLine::ForCurrentProcess();
if (base_command_line->HasSwitch("fingerprints")) {
  const std::string tmp = base_command_line->GetSwitchValueASCII("fingerprints");
  command_line->AppendSwitchASCII("fingerprints", tmp);
}	

3.编译
ninja  -C  out/Default chrome

可以了,后续每次启动chromium时改变 --fingerprints="xxxxxxx" 参数值,就会有不同的plugins指纹

五、验证一下

  • navigator.plugins复制到F12控制台

在这里插入图片描述

  • 发现description中成功追加了我们的参数。固定plugins指纹成功。

相信我这里起个头,其他指纹如何固定,你应该跃跃欲试了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/719947.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序接入lottie动画

1、注意&#xff1a;canvas渲染出来的层级太高&#xff0c;当有弹窗的情况会暴露在弹窗外 模拟器上会有这个问题&#xff0c;线上版本不会有 2、需求 需要把lottie动画在小程序的环境下进行展示 3、什么是lottie动画 由Airbnb开发并开源。允许设计师将复杂的矢量动画导出为…

鸿蒙开发网络管理:【 @ohos.net.http (数据请求)】

数据请求 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import http from ohos.net.http;完整示例 import http from ohos.net.http;// 每一个httpRequest对应一个http请求任务&…

Linux安装并配置Java

1、Linux操作系统安装Java 1.1、下载Java JDK解压包 官方提供的网址&#xff1a; 选择Linux版本 下载列表选择最后一项&#xff0c;通过解压方式安装 倒数第二项是以rpm方式进行安装&#xff0c;另一篇安装MySQL时就是用到rpm方法。 1.2、解压JDK tar -zxvf jdk-8u411-lin…

MyBatisPlus可以自动把我们的业务对应的动态代理接口注入到父类baseMapper属性中,因此我们可以省略对应的mapper动态代理接口

MyBatisPlus可以自动把我们的业务对应的动态代理接口注入到父类baseMapper属性中&#xff0c;因此我们可以省略对应的mapper动态代理接口 在service服务实现类中&#xff0c;当我们使用MyBatis框架的时候&#xff0c;那么一般会有一个类似于下面的动态地理接口的显示引入&…

复分析——第3章——亚纯函数和对数(E.M. Stein R. Shakarchi)

第3章 亚纯函数和对数 (Meromorphic Functions and the Logarithm) One knows that the differential calculus, which has contributed so much to the progress of analysis, is founded on the consideration of differential coefficients, that is derivatives of f…

MySQL数据库与基本操作(增删改查)

一、数据库的基本概念 数据库要学习的四个基本概念&#xff0c;主要是&#xff1a;数据、数据库系统、数据库、数据管理系统。数据&#xff08;Date&#xff09;是描述事物的记录&#xff0c;数据库系统&#xff08;DBS&#xff09;&#xff0c;数据库管理系统&#xff08;DBMS…

k8s学习--chart包开发(创建chart包)

文章目录 chart包应用环境一、安装helm客户端工具二、chart包目录结构三、创建不可配置的chart1.创建目录和chart.yaml2.创建deployment.yaml3.创建service.yaml4.使用chart安装应用5.查看和验证 四、创建可配置的Chart1.官方的预定义变量2.新增values.yaml文件3.配置deploy引用…

页面开发提效的神器:自动打开 IDE 并将光标定位至 DOM 的源代码位置

先看使用效果&#xff1a; 在webpack使用Code Inspector插件 使用方法 // vue.config.js const { codeInspectorPlugin } require(code-inspector-plugin); chainWebpack(config) {config.plugin(code-inspector-plugin).use(codeInspectorPlugin({bundler: webpack,hotKe…

【Altium】PCB设计中如何设置同一网络的间距规则

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标&#xff1a; 对同一网络的各个元素间设置间距规则 2、应用场景&#xff1a; PCB设计规则中&#xff0c;当对网络设置间距规则时&#xff0c;默认的约束对象是不同的网络之间才生效&#xff0c;在一些特殊情况下&am…

网站的友情链接有什么作用

1.对于用户的作用 网站的友情链接能够让用户可以了解到更多的产品服务或者其他信息&#xff0c;这对于用户来说起到一个便捷服务的作用&#xff0c;如果用户不需要的话就不说了&#xff0c;但是如果用户需要到的服务&#xff0c;也就是相当于给用户提供多一个服务渠道。…

NSSCTF-Web题目9

目录 [SWPUCTF 2021 新生赛]sql 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]xff 1、题目 2、知识点 3、思路 [FSCTF 2023]源码&#xff01;启动! 1、题目 2、知识点 3、思路 [SWPUCTF 2021 新生赛]sql 1、题目 2、知识点 SQL注入&#xff0c;空格、注释符等…

【AI开发】RAG基础

RAG的基本流程&#xff1a; 用一个loader把knowledge base里的知识做成一个个的document&#xff0c;然后把document切分成snippets&#xff0c;把snippets通过embedding&#xff08;比如openai的embedding模型或者huggingface的&#xff09;向量化&#xff0c;存储到vectordb…

男士内裤哪个品牌质量好?国内质量好的男士内裤推荐

男士内裤&#xff0c;作为每日贴身陪伴的必需品&#xff0c;舒适度无疑是我们的首要考量。想象一下&#xff0c;闷热不透气、夹臀卡裆、或是束缚紧勒&#xff0c;这些不舒适的感觉无疑会破坏我们一整天的美好心情。 虽然它看似只是一块简单的布料&#xff0c;但这个小伙伴却与…

随心笔记,第六更

目录 一、 三步构建 XML转成java bean 1.XML转XSD 2.XSD转JavaBean 3.jaxb 工具类 4.测试 &#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「Leen」。刚工作几年&#xff0c;想和大家一同进步&am…

QTday2

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0…

迷你手持小风扇十大名牌排名有哪些?公认迷你小风扇排行榜揭开!

随着夏季高温的来临&#xff0c;迷你小风扇成为了大家追求清凉和舒适的必备工具。其小巧便携的设计、强劲的风力和长续航时间&#xff0c;使得迷你小风扇迅速在市场上走红。然而&#xff0c;面对琳琅满目的品牌和各种型号&#xff0c;如何选择一款既高效又耐用的迷你小风扇成为…

基于VTK9.3.0+Visual Studio2017 c++实现DICOM影像MPR多平面重建+V R体绘制4个视图展示功能的实现

开源库&#xff1a;VTK9.3.0 开发工具&#xff1a;Visual Studio2017 开发语言&#xff1a;C 实现过程&#xff1a; class vtkImageInteractionCallback : public vtkCommand { public:static vtkImageInteractionCallback* New(){return new vtkImageInteractionCallback()…

Fiddler实现重定向

fiddler设置响应后断点 命令&#xff1a;bpafter url 配置以后&#xff0c;此时服务器响应的数据在fiddler中被劫持&#xff0c;浏览器显示的是一片空白&#xff08;类似加载不出的效果&#xff09; fiddler中可以修改返回的响应内容 选择一个图片&#xff0c;然后点击run t…

6.S081——CPU调度部分(Xv6中的进程的状态转换)——xv6源码完全解析系列(11)

0.briefly speaking 时隔9个月&#xff0c;我又回来继续更新Xv6内核源码相关的内容了&#xff0c;上次更新之后经历了3个月的秋招&#xff0c;之后紧接着是实验室的中期检查&#xff0c;之后又是遥遥无期的毕业论文写作和修改&#xff0c;总算到现在有了一些自己的时间来继续做…

三分钟了解链动3+1模式

在电商领域的营销策略中&#xff0c;链动31模式以其独特的魅力和优势&#xff0c;吸引了众多商家的目光。下面&#xff0c;我们将对这一模式进行深度剖析&#xff0c;并探讨其相较于链动21模式的优势所在。 一、身份设置与奖励机制 链动31模式在身份设置上分为三种&#xff1…