您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
hook function in crawling
- // ==UserScript==
- // @name Hook
- // @namespace https://github.com/JaycgbEDC/Script/Js
- // @version 0.3
- // @license Unlicense
- // @description hook function in crawling
- // @author Kribe
- // @homepage https://github.com/JaycgbEDC/Script/blob/main/Js/Hook/Hook.user.js
- // @supportURL https://github.com/JaycgbEDC/Script/issues
- // @match *://*/*
- // @icon https://s1.imagehub.cc/images/2023/08/12/default.th.jpeg
- // @grant unsafeWindow
- // @grant GM_registerMenuCommand
- // @grant GM_log
- // @grant GM_setValue
- // @grant GM_getValue
- // @run-at document-start
- // ==/UserScript==
- (function () {
- 'use strict';
- const hookFunctionDebugger = () => {
- Function.prototype.constructor_ = Function.prototype.constructor;
- Function.prototype.constructor = function (a) {
- if(a == "debugger") {
- return function (){};
- }
- return Function.prototype.constructor_(a);
- };
- };
- const hookCookie = () => {
- var cookie_cache = document.cookie;
- Object.defineProperty(document, 'cookie', {
- get: function () {
- return cookie_cache;
- },
- set: function (val) {
- GM_log('Setting cookie', val);
- // 填写cookie名
- if (val.indexOf('m=') != -1) {
- 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 + "; ";
- }
- return cookie_cache;
- }
- });
- };
- const hookSetInterval = () => {
- let setInterval_ = unsafeWindow.setInterval;
- unsafeWindow.setInterval = function() {
- GM_log("setInterval");
- return function () {};
- };
- unsafeWindow.setInterval.toString = function() {
- GM_log("有函数正在检测setInterval是否被hook");
- return setInterval_.toString();
- }
- };
- const hookRandom = () => {
- /* hook掉随机值,比如Date、Math,方便调试 */
- Date.now = function now() {
- console.log("hook Date.now");
- return 1692702146230;
- };
- Date.parse = function parse() {
- console.log("hook Date.parse");
- return 1692702146230;
- };
- Date.prototype.valueOf = function () {
- console.log("hook Date.prototype.valueOf");
- return 1692702146230;
- };
- Date.prototype.getTime = function () {
- console.log("hook Date.prototype.getTime");
- return 1692702146230;
- };
- Date.prototype.toString = function () {
- console.log("hook Date.prototype.toString");
- return 1692702146230;
- };
- Math.random = function random() {
- console.log("hook Math.random");
- return 0.08636862211354912;
- };
- };
- (() => {
- /* 注册用户脚本菜单 */
- const menu1 = GM_registerMenuCommand(`${GM_getValue("hookFunctionDebugger") === true ? '✅' : '⬜'} Hook FunctionDebugger`, (event) => {
- if (GM_getValue("hookFunctionDebugger") === true) {
- GM_setValue("hookFunctionDebugger", false);
- } else {
- GM_setValue("hookFunctionDebugger", true);
- }
- window.location.reload(true);
- });
- const menu2 = GM_registerMenuCommand(`${GM_getValue("hookCookie") === true ? '✅' : '⬜'} Hook Cookie`, (event) => {
- if (GM_getValue("hookCookie") === true) {
- GM_setValue("hookCookie", false);
- } else {
- GM_setValue("hookCookie", true);
- }
- window.location.reload(true);
- });
- const menu3 = GM_registerMenuCommand(`${GM_getValue("hookSetInterval") === true ? '✅' : '⬜'} Hook setInterval`, (event) => {
- if (GM_getValue("hookSetInterval") === true) {
- GM_setValue("hookSetInterval", false);
- } else {
- GM_setValue("hookSetInterval", true);
- }
- window.location.reload(true);
- });
- const menu4 = GM_registerMenuCommand(`${GM_getValue("hookRandom") === true ? '✅' : '⬜'} Hook hookRandom`, (event) => {
- if (GM_getValue("hookRandom") === true) {
- GM_setValue("hookRandom", false);
- } else {
- GM_setValue("hookRandom", true);
- }
- window.location.reload(true);
- });
- })();
- if (GM_getValue("hookFunctionDebugger") === true) {
- hookFunctionDebugger();
- }
- if (GM_getValue("hookCookie") === true) {
- hookCookie();
- }
- if (GM_getValue("hookSetInterval") === true) {
- hookSetInterval();
- }
- if (GM_getValue("hookRandom") === true) {
- hookRandom();
- }
- })();