js逆向工具-v-jstools插件自動補環(huán)境
提示!本文章僅供學習交流,嚴禁用于非法用途,文章如有不當可聯(lián)系本人刪除!
目錄:
????一、反爬參數(shù)
?? ?二、知識點提前get
? ? 三、v_jstools插件安裝
? ? 四、插件自動生成環(huán)境流程案例
? ? 五、知識星球-時光漫漫
一、反爬參數(shù)如圖

二、知識點提前Get
1.cookie一般是兩種,要么服務器生成,要么js生成,可通過如下方式判斷

2.為啥要補環(huán)境:簡言概括下,是因為我們知道這個js文件代碼內(nèi)容會生成我們想要的參數(shù),但是放到本地nodejs環(huán)境下運行不出結(jié)果,因為缺少瀏覽器環(huán)境特有的一些window/document/navigator/localstorage等參數(shù),所以我們需要把這些缺少的瀏覽器環(huán)境補上,讓這份js代碼在本地nodejs環(huán)境下也能運行出結(jié)果來。請看這個圖10秒鐘

3.補環(huán)境分三部分,上中下,在最上面放好你補的環(huán)境參數(shù),中間部分放好js代碼,最下面部分放生成的目標參數(shù),補環(huán)境的好處就是我們完全不用考慮內(nèi)部的算法邏輯,讓它能正常跑起來輸出就行

三、v_jstools安裝
1、下載地址 ?https://github.com/cilame/v_jstools 來自v佬開源開發(fā),大贊

2、安裝如圖:打開 chrome://extensions/ ?, 然后把解壓后的文件夾拖進去就可以

3、然后這里把他固定住

四、詳細分析流程
1.先點擊打開如下兩個開關(guān),然后打開配置頁面

2.如下插件配置詳情,勾選上總開關(guān),DOM開關(guān),以及常用的掛鉤,然后關(guān)掉該配置頁面

3.直接看視頻-缺啥補啥的方法補環(huán)境:https://www.bilibili.com/video/BV1FN4y1d7av/? 或者星球文章?后,我們知道生成cookie的js代碼,如圖hook到了cookie,然后堆?;厮莶榭炊ㄎ坏骄唧w的js文件內(nèi)容

4.所以我們先在vscode里面新建一個js文件,把js代碼和希望輸出的函數(shù)寫好,還是三部分,第一部分待補的環(huán)境,后面將插件生成的臨時環(huán)境放過來,第二部分js代碼也就是我們上個文章介紹的生成cookie的js文件,第三部分生成cookie的調(diào)用是我們手動添加的函數(shù)


5.我們繼續(xù)回到瀏覽器里面,先清掉緩存cookie

6.然后刷新網(wǎng)頁,在滑動鼠標下滾下,防止無法正常生成臨時環(huán)境,如下彈出,代表環(huán)境參數(shù)已經(jīng)生成好


7.我們回到vscode里面,在剛剛新建的js文件里面ctrl+v粘貼剛剛生成的臨時環(huán)境,放在最上方

8.接下來,我們運行下已經(jīng)補好環(huán)境的js文件,最后發(fā)現(xiàn)可能會出現(xiàn)如下幾種情況:生成的補環(huán)境之間能用;已經(jīng)能生成正常cookie但是不能用;完全生成不出cookie結(jié)果值;所以這里適不同情況調(diào)試;接下來我會講兩種一種是直接能用的,一種是需要調(diào)試才能出結(jié)果的情況,大概率大家使用插件的時候也會遇到這個情況
1)生成的補環(huán)境直接能用

2)已經(jīng)能生成正常cookie但是不能用,一直是固定的

3)完全生成不出cookie結(jié)果值

方法一:本案例操作流程之-生成臨時環(huán)境-直接可以用的情況
1.我們還是按之前的步驟清掉緩存,打開插件的勾選項,然后這里唯一要注意的點就是需要勾選script斷點,然后用它生成的臨時環(huán)境

2.刷新網(wǎng)頁后,跳到目標生成cookie的js文件被斷住的js后,我們?nèi)∠鹲cript斷點,直接下一步調(diào)試過去

3.這時候點擊插件的生成臨時環(huán)境,可能會報錯如下,生成的臨時環(huán)境無法保存至剪貼板

4.多點擊幾次生成臨時環(huán)境就可以了,我們把它復制到本地js文件里面

5.ctrl+v粘貼到本地js文件中,運行能生成正常cookie,但是程序處于卡死無法退出狀態(tài)

6.ctrl+s保存文件后,再次運行,這個時候已經(jīng)能正常生成cookie值了,但是同樣出現(xiàn)了我們上一篇文章介紹的雖然出來了cookie值,但是無法中斷程序退出的現(xiàn)象,就是run后不能自動停掉程序,這時候我們可以嘗試將setInterval()定時函數(shù)給置空試試,這是因為setinterval不會清除定時器隊列,每重復執(zhí)行1次都會導致定時器疊加,最終卡死你的網(wǎng)頁(具體的大家可以調(diào)試看看)

7.我們在js代碼的最上方的位置添加setInterval = function(){}將定時器置空即可,這時候能正常生成cookie了,并且把日志輸出置空var v_console_log = function(){{}}


8.接下來我們驗證下這份通過插件補的環(huán)境,與js代碼生成的cookie最終能不能用,用python調(diào)用js文件試試,如下我們調(diào)用js生成的cookie驗證,發(fā)現(xiàn)能成功拿到cookie,這說明我們用插件補環(huán)境也能用,而上面插件補環(huán)境我們只做了兩個操作置空定時器,把日志輸出關(guān)掉即可,接下來分析調(diào)試過程中,可能你生成的臨時環(huán)境不能用的解決方法

方法二:本案例操作流程之-生成臨時環(huán)境-不可以直接用,需要調(diào)試補下
1.勾選Caught Exceptions,即使所發(fā)生運行時異常的代碼在 try/catch 范圍內(nèi),Chrome 開發(fā)者工具也能夠在錯誤代碼處停住,這里就不詳細介紹了,大概思路如下


五、知識星球-時光漫漫
按需選擇,前期的話只是一些小白入門的文章哦Hi~ o(* ̄▽ ̄*)ブ , 哦對,大伙萌七夕快樂~
