From be3bae18d50bd703e5464ad74801a1df3db5eb85 Mon Sep 17 00:00:00 2001 From: cilame Date: Wed, 20 Oct 2021 23:05:06 +0800 Subject: [PATCH] add --- inject.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- options.html | 35 +++++++++++++++++++++++++---------- options.js | 9 +++++++++ 3 files changed, 80 insertions(+), 13 deletions(-) diff --git a/inject.js b/inject.js index 1483ccc..ea2035f 100644 --- a/inject.js +++ b/inject.js @@ -42,6 +42,40 @@ function injectfunc(e, window) { function get_log_at(log_at){ return attoggle?(' '.repeat(30)+log_at):'' } + if (e["config-hook-random"] && e["config-hook-random-freeze"]){ + Math.random = saf(function random(){ return 0.5 }) + } + if (e["config-hook-random"] && e["config-hook-random-fake"]){ + Math.random = saf((function(seed){ return function random() { return (seed = (seed * 9301 + 49297) % 233280) / 233280 } })(123)) + } + if (e["config-hook-random"] && e["config-hook-time-freeze"]){ + var v_Date = Date + var ftime = +e["config-hook-time-freeze-number"] + Date = function(_Date) { + var bind = Function.bind; + var unbind = bind.bind(bind); + function instantiate(constructor, args) { + return new (unbind(constructor, null).apply(null, args)); + } + var names = Object.getOwnPropertyNames(_Date); + for (var i = 0; i < names.length; i++) { + if (names[i]in Date) + continue; + var desc = Object.getOwnPropertyDescriptor(_Date, names[i]); + Object.defineProperty(Date, names[i], desc); + } + return saf(Date); + function Date() { + var date = instantiate(_Date, [ftime]); // 固定返回某一个时间点 + return date; + } + }(Date); + Date.now = saf(function now(){ return ftime }) + } + if (e["config-hook-random"] && e["config-hook-time-performance"]){ + var v_perfnow = 1024 // 固定返回一个数字 + Performance.prototype.now = saf(function now(){ return v_perfnow }) + } var toggle = true if (e["config-hook-alt-w"]) { @@ -150,6 +184,7 @@ function injectfunc(e, window) { if (expurl.v_test(expstr=Error().stack.v_split('\n')[2])){ window.v_log(..._mk_logs('[cookie get]', r, get_log_at(expstr.trim()))) } + if (e["config-hook-cookie-add-debugger"]){ debugger } } } return r @@ -163,6 +198,7 @@ function injectfunc(e, window) { if (expurl.v_test(expstr=Error().stack.v_split('\n')[2])){ window.v_log(..._mk_logs('[cookie set]', v, get_log_at(expstr.trim())) ) } + if (e["config-hook-cookie-add-debugger"]){ debugger } } } return _old_cookie_set.apply(this, arguments) @@ -347,11 +383,18 @@ var hookers = [ "config-hook-Function", "config-hook-eval", "config-hook-remove-dyn-debugger", - "config-hook-cookie", - "config-hook-cookie-get", - "config-hook-cookie-set", "config-hook-settimeout", "config-hook-setinterval", + "config-hook-random", + "config-hook-random-freeze", + "config-hook-random-fake", + "config-hook-time-performance", + "config-hook-time-freeze", + "config-hook-time-freeze-number", + "config-hook-cookie", + "config-hook-cookie-add-debugger", + "config-hook-cookie-get", + "config-hook-cookie-set", "config-hook-encrypt-normal", "config-hook-JSON.parse", "config-hook-JSON.stringify", diff --git a/options.html b/options.html index ff488a3..4feb220 100644 --- a/options.html +++ b/options.html @@ -35,6 +35,24 @@

+ +
+ +
+ +
+ +
+ +
+ +
+ +
此处的两个配置会影响后面的全部挂钩操作 @@ -45,21 +63,18 @@
-
- -
- + +
+ +
+


- -
- -
- +

@@ -81,7 +96,7 @@

- +

diff --git a/options.js b/options.js index 42862da..9918154 100644 --- a/options.js +++ b/options.js @@ -148,4 +148,13 @@ fetch_hook.addEventListener("change", function(v){ chrome.storage.local.set({ [v.target.dataset.key]: v.target.value }) +}) + +var get_now = document.getElementById('get_now'); +get_now.addEventListener("click", function(){ + var show_now = document.getElementById('show_now') + show_now.value = +new Date+'' + chrome.storage.local.set({ + [show_now.dataset.key]: show_now.value + }) }) \ No newline at end of file