cdp-(Chrome DevTools Protocol) browserscan檢測原理逆向分析

https://www.browserscan.net/zh/bot-detection
首先,打開devtools后訪問網址,檢測結果網頁顯示紅色Robot,標簽插入位置,確定斷點位置可以hook該方法,也可以使用插件等方式找到這個位置,本篇不討論.

在這里插入圖片描述

Robot標簽是通過insertBefore插入的.

在這里插入圖片描述

再往上追棧可以發現一個32長度數組,里面存在的都是標簽
在這里插入圖片描述

再往上追棧找到32位數組產生的地方,會發現Eo的函數
在這里插入圖片描述

再追進Eo函數,是由ge產生,ge里面傳的參數又是個函數名稱是個下劃線,這個位置被反復調用感覺比較難調試,分別進ge函數和下劃線函數看看
在這里插入圖片描述

進ge函數后,再跟進幾個函數會發現en這個函數,會發現數組構建模版
在這里插入圖片描述

進入下滑線函數會發現三木表達式i(d)如果是真就創建normal標簽,如果是假就創建robot標簽
在這里插入圖片描述

到這里其實是比較明確了的,就看i(d),i比較不重要,就是個判斷,主要看d的值為什么是個false;

接著分析d,往上找可以找到d = S(!0),進入S函數,再進一兩層簡單函數,S(!0)就是new了一個hp類
在這里插入圖片描述

d要false,那么我們就在set的地方打一個條件斷點,看什么時候設置的false,一番調試后發現,其實就在初始化下面一些代碼,這里繞了遠路不用點斷點去找的
在這里插入圖片描述

這里關鍵就看這個qe為什么是個true了,導致執行了后面的d.value=!1,進入qe函數分析下
在這里插入圖片描述

首先定義了一個Error對象,重寫了get方法,只要被調用那么變量e就會賦值true,最終返回的就是true,這里是使用console.debug調用的這個函數,只要devtools打開,控制臺也就打開,這是debug函數就會生效.

接下來就是過檢測,修改chromium瀏覽器源碼,把console.debug函數的定義里面的內容注釋,那么即使是定義的Error對象重寫了get方法,執行debug函數的時候也不會被調用get方法,最終也就不會被檢測到devtools打開

最后放一張修改后的chromium瀏覽器達到過檢測的效果,直接置空debug,log等函數,在添加自己的logv函數打印日志;
在這里插入圖片描述

總結:

第一次看這個網站,在逆向過程中也并不是很順利

該網站存在大量的混淆,函數全部重使用簡單別名,es6的語法下,大量使用import和export關鍵字進行重命名干擾變量的追蹤,使用&符號進行流程控制,導致走錯了很多分支;

js中有log等日志輸出的函數被置空,在沒有自己的函數l日志輸出方法logv之前,直接在腳本開始之前保存號log函數,這樣日志斷點也是可以正常使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76565.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76565.shtml

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

相關文章

PostgreSQL 通過 copy 命令導入幾何數據 及 通過 CopyManager.copyIn() 導入幾何數據

COPY命令介紹 copy是postgresql提供的一個專門用于快速導入導出數據的命令,通常用于從文件(TXT、CSV等)或標準輸入輸出中讀取或寫入數據。適合批量導入導出數據,速度快。 默認情況下,如果在處理過程中遇到錯誤,COPY將失敗。 COPY只能用于表,不能用于視圖!!! COPY…

常用的幾種 Vue 父子組件傳值方式

1. 父組件向子組件傳值(props) 父組件代碼:Parent.vue <template><div><h2>父組件</h2><Child :parent-msg="parentMsg" /></div> </template><script> import Child from ./Child.vue;export default {componen…

【1】云原生,kubernetes 與 Docker 的關系

Kubernetes&#xff1f;K8s&#xff1f; Kubernetes經常被寫作K8s。其中的數字8替代了K和s中的8個字母——這一點倒是方便了發推&#xff0c;也方便了像我這樣懶惰的人。 什么是云原生&#xff1f; 云原生&#xff1a; 它是一種構建和運行應用程序的方法&#xff0c;它包含&am…

Eureka搭建

1.注冊中心server端 1.1.引入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency><groupId>org.springframework.cloud</…

2025年最新版動漫短劇系統開發小程序app教程,源碼部署上線

以下是動漫短劇系統開發上線的詳細教程&#xff0c;包含從0到1的全流程&#xff1a; 一、需求分析&#xff08;關鍵&#xff1a;明確核心功能&#xff09; 核心功能清單&#xff1a; 用戶端&#xff1a;短視頻瀏覽、彈幕評論、收藏/點贊、創作者關注、付費訂閱。創作者端&am…

集成學習基礎應用實踐

集成學習簡介 學習目標&#xff1a; 1.知道集成學習是什么&#xff1f; 2.了解集成學習的分類 3.理解bagging集成的思想 4.理解boosting集成的思想 知道】集成學習是什么&#xff1f; 集成學習是機器學習中的一種思想&#xff0c;它通過多個模型的組合形成一個精度更高的…

系統與網絡安全------彈性交換網絡(1)

資料整理于網絡資料、書本資料、AI&#xff0c;僅供個人學習參考。 Trunk原理與配置 Trunk原理概述 Trunk&#xff08;虛擬局域網中繼技術&#xff09;是指能讓連接在不同交換機上的相同VLAN中的主機互通。 VLAN內通信 實現跨交換的同VLAN通信&#xff0c;通過Trunk鏈路&am…

python-圖片分割

圖片分割是圖像處理中的一個重要任務&#xff0c;它的目標是將圖像劃分為多個區域或者對象&#xff0c;例如分割出物體、前景背景或特定的部分。在 Python 中&#xff0c;常用的圖片分割方法包括傳統的圖像處理技術&#xff08;例如閾值分割、區域生長等&#xff09;和深度學習…

【Linux】軟件管理機制和軟件安裝

文章目錄 1. 軟件管理器1.1 Linux的軟件管理方式1.2 Linux的常見軟件管理機制RPM和dpkg 2. RPM2.1 rpm安裝2.2 rpm升級與更新2.3 rpm查詢2.4 rpm驗證與數字簽名2.5 rpm反安裝與重建數據庫 3. YUM3.1 yum查詢3.2 yum安裝/升級3.3 yum刪除3.4 yum的配置文件3.5 yum的軟件群組功能…

Android第三次面試總結(網絡篇)

在計算機網絡領域&#xff0c;網絡模型是理解通信原理的基礎框架。本文將詳細解析 OSI 參考模型和 TCP/IP 模型的分層結構、核心功能及實際應用&#xff0c;并通過對比幫助讀者建立完整的知識體系。 一、OSI 參考模型&#xff1a;七層架構的理論基石 OSI&#xff08;開放系統…

OpenCV day5

函數內容接上文&#xff1a;OpenCV day4-CSDN博客 目錄 9.cv2.adaptiveThreshold(): 10.cv2.split()&#xff1a; 11.cv2.merge()&#xff1a; 12.cv2.add()&#xff1a; 13.cv2.subtract()&#xff1a; 14.cv2.multiply()&#xff1a; 15.cv2.divide()&#xff1a; 1…

智能運維新范式

在制造業、設備制造、工業物聯網等領域&#xff0c;“服務周期長、響應效率低” 始終是產品運維的痛點 —— 設備故障突發時&#xff0c;工程師千里奔赴現場的耗時耗力&#xff1b;非計劃停機帶來的生產損失&#xff1b;客戶對服務體驗的更高期待…… 傳統運維模式早已難以適應…

實現定時發送郵件,以及時間同步

定時發送郵件 部署郵件服務 查看有沒有安裝mailx,安裝了 [root192 ~]# rpm -q mailx mailx-12.5-43.fc38.x86_64去網易拿一下授權碼,寫到配置文件里 vim /etc/mail.rcset fromxxxxxxx163.com set smtpsmtp.163.com set smtp-auth-userxxxxxxx163.com set smtp-auth-passwor…

狀態模式:有限狀態機在電商訂單系統中的設計與實現

狀態模式&#xff1a;有限狀態機在電商訂單系統中的設計與實現 一、模式核心&#xff1a;用狀態切換驅動行為變化 在電商訂單系統中&#xff0c;訂單狀態會隨著用戶操作動態變化&#xff1a;「已創建」的訂單支付后變為「已支付」&#xff0c;發貨后變為「已發貨」&#xff0…

ubuntu 24.02部署java web服務

ubuntu 24.02 版本推薦使用jdk 21版本部署java web服務&#xff0c;開發后先使用sudo java -jar xxx.jar驗證運行結果。 jdk安裝&#xff1a;sudo apt install openjdk-21-jdk-headless 編輯服務文本 [Unit] DescriptionWebMgr Java Application Afternetwork.target mysql.…

深入淺出:LDAP 協議全面解析

在網絡安全和系統管理的世界中&#xff0c;LDAP&#xff08;輕量級目錄訪問協議&#xff0c;Lightweight Directory Access Protocol&#xff09;是一個不可忽視的核心技術。它廣泛應用于身份管理、認證授權以及目錄服務&#xff0c;尤其在企業級環境中占據重要地位。本文將從基…

AI書籍大模型微調-基于亮數據獲取垂直數據集

大模型的開源&#xff0c;使得每位小伙伴都能獲得AI的加持&#xff0c;包括你可以通過AIGC完成工作總結&#xff0c;圖片生成等。這種加持是通用性的&#xff0c;并不會對個人的工作帶來定制的影響&#xff0c;因此各個行業都出現了垂直領域大模型。 垂直大模型是如何訓練出來…

【2025軟考高級架構師】——計算機系統基礎(7)

摘要 本文主要介紹了計算機系統的組成&#xff0c;包括硬件和軟件兩大部分。硬件由處理器、存儲器、總線、接口和外部設備等組成&#xff0c;軟件則涵蓋系統軟件和應用軟件。文章還詳細闡述了馮諾依曼計算機的組成結構&#xff0c;包括 CPU、主存儲器、外存等&#xff0c;并解…

AI大模型之模型幻覺

模型幻覺(Model Hallucination)是大模型生成內容時脫離事實、虛構信息的一種現象,尤其在語言模型、圖像生成模型等中較為常見。為了更深入地理解這一現象,我們可以將其分為兩個維度進行分析:內在幻覺(Intrinsic Hallucination) 和 外在幻覺(Extrinsic Hallucination)。…

spring Ai---向量知識庫(一)

在一些垂直領域以及公司內部信息相關或者實時性相關的大模型應用&#xff0c;就無法直接使用chatGPT。 這個時候&#xff0c;向量知識庫就進入了。 通過坐標向量最接近的即為匹配相關答案。 向量模型定義&#xff1a;將文檔向量化&#xff0c;保證內容越相似的文本&#xff0c;…