016.自定义指纹chromium-随机tls指纹(ja4指纹)

自定义指纹chromium-随机tls指纹(ja4指纹)

一、什么是JA4指纹

  • JA4指纹可以理解成:将加密算法顺序排序后的ja3指纹。
  • 之前写过一篇博客介绍ja3指纹:插眼传送
  • 由于之前打乱算法顺序,只会改变ja3指纹和akamai指纹,ja4指纹并不会变。所以这次我们对加密算法进行随机增减。

二、如何在线获取自己的ja4指纹

  • 网址1:https://tls.peet.ws/

三、chromium编译-随机tls指纹

  • 首先假设你已经编译成功了,我也在第一篇文章写了如何编译chromium的大概流程。
  • 打开源码文件\net\socket\ssl_client_socket_impl.cc
1.头部加上(随便加在一个#include后面)
#include <random>
2.定义一个获取随机数的函数
int getRandomIntForFoo12Modern() {
    static std::mt19937 generator(static_cast<unsigned long>(time(NULL))); 
    std::uniform_int_distribution<int> distribution(0, 1);
    return distribution(generator);
}
3.找到下面的代码
  std::string command("ALL:!aPSK:!ECDSA+SHA1:!3DES");

可以看到加密方式在chromium中是写死的,顺序也是。我们不能随意删减加密方式,但我们给他随机打乱还是可以的。

替换为
//std::string command("ALL:!aPSK:!ECDSA+SHA1:!3DES");
std::string command("ALL");
if (getRandomIntForFoo12Modern() == 0)command.append(":!aPSK");
if (getRandomIntForFoo12Modern() == 0)command.append(":!kRSA");
if (getRandomIntForFoo12Modern() == 0)command.append(":!ECDSA");
if (getRandomIntForFoo12Modern() == 0)command.append(":!ECDSA+SHA1");
if (getRandomIntForFoo12Modern() == 0)command.append(":!3DES");

这样加密算法就进行了随机增减。

3.编译
ninja  -C  out/Default chrome
  • 编译后每次刷新时ja4指纹也都是随机的了。

相关推荐

  1. 016.定义指纹chromium-随机tls指纹(ja4指纹)

    2024-07-16 06:22:01       25 阅读
  2. 017.定义指纹浏览器-传参固定指纹(二)

    2024-07-16 06:22:01       18 阅读
  3. Vue.js定义指令

    2024-07-16 06:22:01       29 阅读
  4. 【Vue】定义指令

    2024-07-16 06:22:01       43 阅读
  5. Vue定义指令

    2024-07-16 06:22:01       43 阅读
  6. Vue-------定义指令

    2024-07-16 06:22:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 06:22:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 06:22:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 06:22:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 06:22:01       69 阅读

热门阅读

  1. PHP基础语法

    2024-07-16 06:22:01       21 阅读
  2. 向量数据量milvus k8s helm 对接外部安装部署流程

    2024-07-16 06:22:01       16 阅读
  3. ChatGPT对话:有关花卉数据集

    2024-07-16 06:22:01       21 阅读
  4. lvs集群

    lvs集群

    2024-07-16 06:22:01      25 阅读
  5. k8s学习笔记——dashboard安装

    2024-07-16 06:22:01       25 阅读
  6. Python应用—车辆统计(Opencv)

    2024-07-16 06:22:01       23 阅读
  7. 浅谈为什么需要树链剖分

    2024-07-16 06:22:01       21 阅读
  8. 轨迹简化算法

    2024-07-16 06:22:01       23 阅读
  9. VisualTreeHelper.GetChildrenCount

    2024-07-16 06:22:01       20 阅读
  10. 使用Docker Compose进行多容器应用部署

    2024-07-16 06:22:01       23 阅读