您的位置:首页 > 新闻 > 会展 > 哪里有网站建设中心_免费软件聊天免费找女朋友_免费b站推广短视频_免费自助建站哪个最好

哪里有网站建设中心_免费软件聊天免费找女朋友_免费b站推广短视频_免费自助建站哪个最好

2025/1/1 10:29:16 来源:https://blog.csdn.net/w1101662433/article/details/144275277  浏览:    关键词:哪里有网站建设中心_免费软件聊天免费找女朋友_免费b站推广短视频_免费自助建站哪个最好
哪里有网站建设中心_免费软件聊天免费找女朋友_免费b站推广短视频_免费自助建站哪个最好

一、目标:

  • 1.了解js是如何获取windows版本的。
  • 2.如何从c++层面修改chromium源码,修改win系统版本

二、js是如何获取windows系统版本:

  • 将下面的js复制到F12控制台
async function detectWindowsVersion() {let userAgent = navigator.userAgent;if (/Windows NT 10.0/.test(userAgent)) {ua = await navigator.userAgentData.getHighEntropyValues(["platformVersion"])if (navigator.userAgentData.platform === "Windows") {const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);if (majorPlatformVersion >= 13) {return "Windows 11";}else if (majorPlatformVersion > 0) {return "Windows 10";}}} else if (/Windows NT 6.3/.test(userAgent)) {return "Windows 8.1";} else if (/Windows NT 6.2/.test(userAgent)) {return "Windows 8";} else if (/Windows NT 6.1/.test(userAgent)) {return "Windows 7";} else if (/Windows NT 6.0/.test(userAgent)) {return "Windows Vista";} else if (/Windows NT 5.1|Windows XP/.test(userAgent)) {return "Windows XP";} else {return "未知";}
}
let version = await detectWindowsVersion();
console.log(version)
  • 输出:
Windows 11

注释:js获取win系统版本分为2部分:
1是win10之前的版本区分,通过navigator.userAgent中的NT版本数字来区分,
2是win10和win11的区分,通过navigator.userAgentData来区分

三、修改源码:

  • 前面的博客写了如何编译chormium,这里假设你都已经是个编译成功了

由于现在用户基本都是Win10+了,我这里只提供Win10和Win11随机切换的源码修改。

1.打开 \third_party\blink\renderer\core\frame\navigator_ua.cc
  • 找到源码:
  ua_data->SetPlatform(String::FromUTF8(metadata.platform),String::FromUTF8(metadata.platform_version));
2.替换为:
  //ua_data->SetPlatform(String::FromUTF8(metadata.platform),//String::FromUTF8(metadata.platform_version));// 开始更改======================== base::CommandLine* base_command_line = base::CommandLine::ForCurrentProcess();int seed = 123123123;if (base_command_line->HasSwitch("fingerprints")) {std::istringstream(base_command_line->GetSwitchValueASCII("fingerprints")) >> seed;}int platfrom_v = 7;if (base_command_line->HasSwitch("fingerprints")) {platfrom_v = seed % 7 + 10;}ua_data->SetPlatform(String::FromUTF8(metadata.platform), String::FromUTF8(std::to_string(platfrom_v) + ".0.0"));// 结束更改========================  

注意:这里platfrom_v的随机取值范围是7~16,大于12为Win11,反之则为Win10

3.编译
ninja -C out/Default chrome

四、感想

  • 大佬们有经验也都不愿意开源,好多小伙伴也都是在默默单干,哎。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com