爬蟲入門之查詢JS入口篇 --- 油猴外掛的使用
阿新 • • 發佈:2022-03-06
咱們書接上回,昨天文章發出後,@花兒謝了 大佬說有 油猴指令碼 Hook的方法,我之前也試過用指令碼 Hook 過,但是沒Hook住,因為姿勢不對,用了他教的方法後,很輕鬆就找生成的地方了。用油猴,保頭髮,妥妥的。
指令碼如下:
// ==UserScript== // @name Hook global // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author 悅來客棧的老闆 // @include * // @grant none// @run-at document-start // ==/UserScript== (function() { 'use strict'; //全域性變數 監控 var t = window._t Object.defineProperty(window, '_t', { get: function() { console.log('Getting window._t'); return t; }, set: function(val) { console.log('Setting window._t', val); debugger; t = val; return t; } }) })();
新增好指令碼後,來試試效果。
新開啟一個標籤頁,按下F12,並在位址列輸入:
https://passport.yhd.com/passport/login_input.do
然後,回車,這時,停了下來:
看到沒,很輕鬆的就Hook住了,一跟頭髮都不沒掉好嗎(自己無聊薅掉的不算哈)。
我們來看堆疊,點選下一行(nQ),並美化程式碼,效果如圖:
將這些變數分別在控制檯上打印出來:
又是 split,又是 reverse,難怪昨天搜尋不到的,再看下面這行程式碼:
lm[nV] = nR;
這個 lm 是 window 物件,nV 的值就是 "_t", nR是值,果然是在這裡傳遞的,我們看到 nR是傳遞進來的,繼續跟堆疊往上追,來到了這:
原來是呼叫這個函式,b('0x2fd', 'ad)B') 的值 在控制檯下看 是 : call,這下就明白了,nM就是傳遞進去的值,再看看nM是哪裡賦值的:
在這個 case '2' ,nM是最先賦值的,也就是我們上篇文章找到的加密位置。
感悟:
-
學習中能有個大佬指點,能保住你不少頭髮,並且少走很多彎路。
-
如果剛開始學JS破解,就去了解油猴指令碼,可以節省大量時間。
-
熟能生巧是真理!
轉自:微信公眾號: