//當前版本hook工具只支持Content-Type為html的自動hook //下面是一個示例:這個示例演示了hook全局的cookie設置點 (function() { //嚴謹模式 檢查所有錯誤 'use strict'; //document 為要hook的對象 這里是hook的cookie var cookie_ = ""; Object.defineProperty(document, 'cookie', { //hook set方法也就是賦值的方法 //當前也可以hook get方法 set: function(val) { //這樣就可以快速給下面這個代碼行下斷點 //從而快速定位設置cookie的代碼 console.log('Hook捕獲到cookie設置->', val); cookie_ = val; return val; }, get: function(val) { //這樣就可以快速給下面這個代碼行下斷點 //從而快速定位設置cookie的代碼 console.log('Hook捕獲到cookie獲取->', val); return cookie_; } }); })();
// ==UserScript== // @name cookie // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author 公眾號:python學習開發 // @include * // @grant none // ==/UserScript== (function() { 'use strict'; var cookie_cache = document.cookie; Object.defineProperty(document, 'cookie', { get: function() { console.log(cookie_cache); return cookie_cache; }, set: function(val) { debugger; var cookie = val.split(";")[0]; var ncookie = cookie.split("="); var flag = false; var cache = cookie_cache.split(";"); cache = cache.map(function(a){ if (a.split("=")[0] === ncookie[0]){ flag = true; return cookie; } return a; }) cookie_cache = cache.join(";"); if (!flag){ cookie_cache += cookie + ";"; } }, }); })();