hook本质上就是重写函数,因为js反爬也是通过重写函数来进行加密或者反爬的。记录两个小脚本用于hook,虽然我早已经不从事爬虫工作,唉~!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
   | f = Function Function = function(a){     if (a!=='debugger'){return f(a)} }
  Function.prototype.constructor_ = Function.prototype.constructor; Function.prototype.constructor = function(x){     if (x!=='debugger'){return Function.prototype.constructor_(x)} }
  eval_ = eval; eval = function(a){     if(a=='debugger')     {return ''}     else{return eval_(a)} }
  setTimeout = function(a,b){ }
  setInterval = function(){}
  console.log_ = console.log
  Function.prototype.constructor_ = Function.prototype.constructor; Function.prototype.constructor = function(x){     debugger;     return Function.prototype.constructor_(x); }
  (function(){     'use strict'     Object.defineProperty(document, 'cookie', {         get: function() {             debugger;             return "";         },         set: function(value) {             debugger;             return value;         }, }); })()
   |