当前位置: 首页 > news >正文

chromium魔改——修改 navigator.webdriver 检测

chromium源码官网 https://source.chromium.org/chromium/chromium/src

说下修改的chromium源码思路:

首先在修改源码过检测之前,我们要知道它是怎么检测的,找到他通过哪个JS的API来做的检测,只有知道了如何检测,我们才能想办法去绕过,俗话说,知己知彼百战百胜嘛!

修改 webdriver 检测

在浏览器中,JS环境对抗的时候,会通过 navigator.webdriver 来检测是否为自动化在控制网站,如果返回为true,则表示是自动化在控制,否则不是,所以我们只需要将他的返回值永远返回false即可
在这里插入图片描述
自动化控制返回的值

在这里插入图片描述
正常浏览器返回的值

在chromium源码中,找到以下路径

\src\third_party\blink\renderer\core\frame\navigator.cc

有以下两种修改方式,选其中一种即可。

方式一:
在这里插入图片描述

方式二:
在这里插入图片描述

修改完之后保存代码即可,在修改的时候不要将原始代码删除,注释即可方便出错的时候查问题。

保存好了之后,运行以下命令,这个命令就是前面编译章节中的编译命令,你当时编译的时候用的是什么,这里就写什么,他不是重新编译,是增量编译,只对新增的内容进行编译,所以速度会快很多。

autoninja -C out/Default chrome

在这里插入图片描述

编译好之后,通过自动化程序检测一下

我们这里使用 playwright 来测试

from playwright.sync_api import sync_playwright

def run():
    with sync_playwright() as p:
        browser = p.chromium.launch(
            executable_path="E:\my_code\chromium\src\out\Default\chrome.exe",
            headless=False
        )
        # 创建一个新的浏览器上下文
        context = browser.new_context()
        # 打开一个新页面
        page = context.new_page()
        # 访问目标网站
        page.goto("https://www.baidu.com")

        # 等待用户输入后再关闭浏览器
        input("Press Enter to close the browser...")
        
        # 关闭浏览器
        browser.close()

if __name__ == "__main__":
    run()

可以看到是已经成功了

在这里插入图片描述

http://www.dtcms.com/a/108771.html

相关文章:

  • 【大模型系列篇】大模型基建工程:基于 FastAPI 自动构建 SSE MCP 服务器 —— 进阶篇
  • Leetcode hot 100(day 4)
  • 03.01、三合一
  • 使用Amazon Bedrock Guardrails保护你的DeepSeek模型部署
  • 一问讲透redis持久化机制-rdb aof
  • 深度优化:解决SpringBoot应用启动速度慢的8个关键策略
  • 部署大模型实战:如何巧妙权衡效果、成本与延迟?
  • 智慧园区大屏如何实现全局监测:监测意义、内容、方式
  • .NET WebApi的详细发布流程——及其部署到Linux与Windows平台
  • AG32:MCU和CPLD如何交互?
  • 6.3 八皇后问题搜索
  • 几个在面试中遇到的计算机基础问题
  • C与指针的神秘面纱
  • 【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态
  • sshd启动报错“Failed to start OpenSSH Server daemon”
  • Python不可变数据类型全解析:原理、优势与实战指南
  • C#游戏开发【第18天】 | 深入理解队列(Queue)与栈(Stack):从基础到任务队列实战
  • 关闭Chrome提示更新失败的弹窗
  • 前端:v-html和v-text在使用上的区别
  • Scala相关知识学习总结4
  • Ubuntu安装Elasticsearch
  • 【通信观察家】2025年Q1通信业技术跃迁与生态重构:AI+低空经济双轮驱动
  • ffmpeg视频转码相关
  • 统计项目代码行数工具—cloc
  • 001英超:切尔西VS热刺, 伦敦德比“大”战可期
  • 查看进程,认识fork
  • Python 设计模式:外观模式
  • 汽车 HMI 设计的发展趋势与设计要点
  • 《MyBatis CRUD实战与核心配置详解:从基础操作到高级应用》
  • Python入门(8):文件