爬蟲分析之 JS逆向某驗滑動加密(1)
相關學習推薦:javascript影片教學
#今天給大家分析並還原某驗的JS 加密,做過爬蟲的應該都知道這個驗證碼,如果你還沒遇到以後你會碰到的相信我
話不多說,時間寶貴,進入正題!
抓包
#進入官網,點擊選擇今天的主題滑動驗證,其他驗證類型的加密大同小異,只要你掌握了下面的方法!

點擊按鈕抓包,隨意拖曳一下,請求封包如下

可以看到一堆請求參數,其實你要做的就是實現w 的加密

點擊進去,就能看到加密的JS 文件,為便於分析將其保存到本地。
AST 還原
#透過偵錯可以看到有大量的unicode 格式的編碼以及陣列名稱的混淆

傳統解決方法是在瀏覽器console 端輸入就能看到它的廬山真面目,但是這種方法太麻煩了,接下來我們用AST 來將其還原!
先還原unicode 編碼,開啟AST 線上解析網站(https://blogz.gitee.io/ast/[1])
將待還原的程式碼放進去

可以看到只要把extra 屬性刪掉就能還原原來的值。遍歷程式碼如下:
const parser = require("@babel/parser");const traverse = require("@babel/traverse").default;const t = require("@babel/types"); //操作节点的函数,比如判断节点类型,生成新的节点等:const generator = require("@babel/generator").default; //生成还原后的代码const fs = require('fs');var jscode = fs.readFileSync("./slide.js", { encoding: "utf-8"});const visitor = { StringLiteral(path) { delete path.node.extra }}let ast = parser.parse(jscode);traverse(ast, visitor);let {code} = generator(ast, opts = {jsescOption: {"minimal": true}});fs.writeFile('decode_slide.js', code, (err)=>{});复制代码
注意 jscode 就是之前扣下來的 JS 程式碼, 最後將還原後的程式碼寫入到 decode_slide.js 檔案中
接下來是混淆陣列的還原。觀察調試程式碼,所有的陣列都是基於 JS 檔案中開頭的大數組 KBBji.$_Co,同時將該數組賦值給很多變量,這些變數名都是隨機產生的。
所以接下來我們要做的找出這些變數名稱,然後將其替換成對應的字串值!
AST 線上解析

#根據解析結果,寫對應的遍歷程式碼
const visitor = { VariableDeclaration(path){ const {declarations} = path.node; if(!t.isMemberExpression(declarations[0].init))return; if(declarations[0].init.property.name !== "$_Co")return; if(declarations.length !==3 || declarations[0].init.property === undefined)return; let value1 = declarations[0].id.name; let value2 = declarations[2].id.name; new_array.push(value1, value2); }};复制代码
上面就將所有的變數名稱找出來了,找到之後就能將所有的這種形式$_DFCB(66) 程式碼還原了,這樣程式碼就能有個直覺感受!

相信聰明的你很快就能寫出還原的程式碼。經過上面幾步整體還原後的程式碼是這樣的

根據關鍵字很快就能搜尋到加密所在位置,清晰可見!如果不還原你是搜不到的.. 還原後在網站上我們也能很快定位到加密位置,打上斷點

同樣的程式碼可讀性相差多大,相信一眼就能看到。你以為這樣就完了? No!
Reres 替換
#既然程式碼已經還原了,但是我們在網站上除錯的時候還是混淆的程式碼,那怎麼辦呢?
接下來上另一個神器 Reres, 它的作用是將請求映射到本地,即你可以用本地 JS 來代替遠端 JS 檔案。
用法直接參考它的github https://github.com/annnhan/ReRes[2]
了這個東西,我們就能在網站上用還原後的JS 來進行調試,太強了把!
效果如下:

tql,這下加密參數扣起來就沒壓力了吧!
後台回覆 tql 取得相關程式碼!
#想了解更多程式設計學習,請關注php培訓欄位!
以上是爬蟲分析之 JS逆向某驗滑動加密(1)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

如何使用JS和百度地圖實現地圖平移功能百度地圖是一款廣泛使用的地圖服務平台,在Web開發中經常用於展示地理資訊、定位等功能。本文將介紹如何使用JS和百度地圖API實作地圖平移功能,並提供具體的程式碼範例。一、準備工作使用百度地圖API前,首先需要在百度地圖開放平台(http://lbsyun.baidu.com/)上申請一個開發者帳號,並建立一個應用程式。創建完成

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

如何使用PHP和JS創建股票蠟燭圖股票蠟燭圖是股票市場中常見的技術分析圖形,透過繪製股票的開盤價、收盤價、最高價和最低價等數據,幫助投資者更直觀地了解股票的價格波動情形。本文將教你如何使用PHP和JS創建股票蠟燭圖,並附上具體的程式碼範例。一、準備工作在開始之前,我們需要準備以下環境:1.一台運行PHP的伺服器2.一個支援HTML5和Canvas的瀏覽器3

如何使用JS和百度地圖實現地圖點擊事件處理功能概述:在網路開發中,經常需要使用地圖功能來展示地理位置和地理資訊。而地圖上的點擊事件處理是地圖功能中常用且重要的一環。本文將介紹如何使用JS和百度地圖API來實現地圖的點擊事件處理功能,並給出具體的程式碼範例。步驟:匯入百度地圖的API檔案首先,要在HTML檔案中匯入百度地圖API的文件,可以透過以下程式碼實現:

如何使用JS和百度地圖實現地圖熱力圖功能簡介:隨著互聯網和行動裝置的快速發展,地圖成為了普遍的應用場景。而熱力圖作為一種視覺化的展示方式,能夠幫助我們更直觀地了解數據的分佈。本文將介紹如何使用JS和百度地圖API來實現地圖熱力圖的功能,並提供具體的程式碼範例。準備工作:在開始之前,你需要準備以下事項:一個百度開發者帳號,並建立一個應用,取得到對應的AP

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。
