016.自定义指纹chromium-随机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指纹也都是随机的了。
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王辉辉的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值