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_playwrightdef 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.pswp.cn/news/899995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899995.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Muduo網絡庫實現 [九] - EventLoopThread模塊

目錄 設計思路 類的設計 模塊的實現 私有接口 公有接口 設計思路 我們說過一個EventLoop要綁定一個線程,未來該EventLoop所管理的所有的連接的操作都需要在這個EventLoop綁定的線程中進行,所以我們該如何實現將EventLoop和線程綁定呢?…

UE5學習筆記 FPS游戲制作38 繼承標準UI

文章目錄 UE的UIUMG的繼承繼承標準控件創建標準控件繼承標準控件的用處 UE的UI 和Untiy有onGui和UGui類似,UE有slateUI和UMG,slateUI是早期只能用C編寫的UI,UMG是現在使用的,可以拖拽編輯的UI slateUI是UMG的父類 UMG的繼承 我們編寫一個控…

C#核心學習(七)面向對象--封裝(6)C#中的拓展方法與運算符重載: 讓代碼更“聰明”的魔法

目錄 一、什么是拓展方法? 二、拓展方法有啥用?怎么寫拓展方法? 1. ?核心用途 2. ?編寫步驟 實現步驟 關鍵點說明 關鍵規則 3. ?注意事項 三、什么是運算符重載? 四、運算符重載有啥用?怎么寫?…

銀行卡歸屬地查詢API接口如何對接?

銀行卡歸屬地查詢 API 接口是一種能讓開發者通過編程方式獲取銀行卡歸屬地等相關信息的工具。借助此接口,開發者可將銀行卡歸屬地查詢功能集成到自己的應用程序或系統里,像電商平臺、第三方支付公司等都能運用它來提升業務的準確性與安全性。 銀行卡歸屬…

ORM mybits mybits-plus

ORM ORM 即對象關系映射(Object Relational Mapping),是一種程序設計技術,用于實現面向對象編程語言里不同類型系統的數據之間的轉換。下面從基本概念、工作原理、優勢與劣勢、常見的 ORM 框架等方面詳細介紹 ORM。 常見的orm框架…

網絡編程—網絡概念

目錄 1 網絡分類 1.1 局域網 1.2 廣域網 2 常見網絡概念 2.1 交換機 2.2 路由器 2.3 集線器 2.4 IP地址 2.5 端口號 2.6 協議 3 網絡協議模型 3.1 OSI七層模型 3.2 TCP/IP五層模型 3.3 每層中常見的協議和作用 3.3.1 應用層 3.3.2 傳輸層 3.3.3 網絡層 3.3.4…

4月3日工作日志

一個樸實無華的目錄 今日學習內容:1.關系數據庫 今日學習內容: 1.關系數據庫

git commit Message 插件解釋說明

- feat - 一項新功能 - fix - 一個錯誤修復 - docs - 僅文檔更改 - style - 不影響代碼含義的更改(空白、格式化、缺少分號等) - refactor - 既不修復錯誤也不添加功能的代碼更改 - perf - 提高性能的代碼更改 - build - 影響構建系統或外部依賴項…

ngx_open_file

定義在 src\os\unix\ngx_files.h #define ngx_open_file(name, mode, create, access) \open((const char *) name, mode|create, access) name:文件名(通常是一個字符串)。mode:文件打開模式&#x…

23種設計模式-行為型模式-責任鏈

文章目錄 簡介問題解決代碼核心改進點: 總結 簡介 責任鏈是一種行為設計模式,允許你把請求沿著處理者鏈進行發送。收到請求后,每個處理者均可對請求進行處理,或將其傳遞給鏈上的下個處理者。 問題 假如你正在開發一個訂單系統。…

注意力機制在大語言模型中的原理與實現總結

注意力機制在大語言模型中的原理與實現總結 1. 章節介紹 在大語言模型的學習中,理解注意力機制至關重要。本章節旨在深入剖析注意力機制的原理及其在大語言模型中的應用,為構建和優化大語言模型提供理論與實踐基礎。通過回顧神經網絡基礎及傳統架構的局…

kafka消息可靠性傳輸語義

Kafka提供了多種消息傳遞語義,以適應不同的業務需求和可靠性要求。以下是Kafka消息傳輸的可靠性語義及其實現機制: 1. At Most Once(至多一次) 語義:消息可能會丟失,但不會被重復傳遞。 實現機制&#xf…

NLP高頻面試題(三十三)——Vision Transformer(ViT)模型架構介紹

Transformer架構在自然語言處理領域取得了顯著成功,激發了研究人員將其應用于計算機視覺任務的興趣。Vision Transformer(ViT)應運而生,成為圖像分類等視覺任務中的新興架構。本文將介紹ViT的基本架構、工作原理,并與傳…

Oracle數據庫數據編程SQL<3.6 PL/SQL 包(Package)>

包是Oracle數據庫中一種重要的PL/SQL程序結構,它將邏輯相關的變量、常量、游標、異常、過程和函數組織在一起,提供了更好的封裝性和模塊化。在大型項目中,可能有很多模塊,而每一個模塊又有自己的存過、函數等。而這些存過、函數默認是放在一起的,如果所有的存過函數都是放…

機器學習 分類算法

【實驗名稱】 實驗:分類算法 【實驗目的】 1.了解分類算法理論基礎 2.平臺實現算法 3. 編程實現分類算法 【實驗原理】 分類(Categorization or Classification)就是按照某種標準給對象貼標簽(label),再根據標簽來區分歸類。 【實驗環境】 OS:Ubuntu16.0…

HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板

HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板 這里寫目錄標題 HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板項目介紹技術棧核心功能實現1. 畫板初始化與工具管理2. 多樣化繪畫工具3. 事件處理機制 技術要點分析1. Canvas上下文優化…

【YOLOv8】YOLOv8改進系列(12)----替換主干網絡之StarNet

主頁:HABUO🍁主頁:HABUO 🍁YOLOv8入門改進專欄🍁 🍁如果再也不能見到你,祝你早安,午安,晚安🍁 【YOLOv8改進系列】: YOLOv8結構解讀 YOLOv8…

1Panel 面板 寶塔面板 Ubuntu 24.04

1Panel 面板 寶塔面板 Ubuntu 24.04 https://1panel.cn/ 1Panel 是一款開源的 Linux 服務器運維管理面板,它就像是給服務器配上了一個智能管家,讓我們能通過 Web 端輕松管理服務器。以往我們管理 Linux 服務器,常常需要在命令行中輸入各種復…

Node.js全局生效的中間件

目錄 1. 目錄結構 2. 代碼實現 2.1 安裝Express 2.2 app.js - 主文件 2.3 globalMiddleware.js - 全局中間件 3. 程序運行結果 4. 總結 在Node.js的Express框架中,全局生效的中間件是指應用程序啟動后,對所有請求都有效的中間件。它通常用于日志記…

WiFi(無線局域網)技術的多種工作模式

WiFi(無線局域網)技術支持多種工作模式,以滿足不同的網絡需求和應用場景。以下是主要的WiFi工作模式及其詳細說明: 1. 基礎設施模式(Infrastructure Mode) [無線接入點 (AP)]/ | \ [客戶端…