//当前版本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 + ";"; } }, }); })();