1. 程式人生 > 其它 >爬蟲入門之查詢JS入口篇 --- 油猴外掛的使用

爬蟲入門之查詢JS入口篇 --- 油猴外掛的使用

咱們書接上回,昨天文章發出後,@花兒謝了 大佬說有 油猴指令碼 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是最先賦值的,也就是我們上篇文章找到的加密位置。

感悟:

  1. 學習中能有個大佬指點,能保住你不少頭髮,並且少走很多彎路。

  2. 如果剛開始學JS破解,就去了解油猴指令碼,可以節省大量時間。

  3. 熟能生巧是真理!

轉自:微信公眾號:Python學習開發