mirror of
https://git.mirrors.martin98.com/https://github.com/cilame/v_jstools
synced 2025-07-16 14:51:49 +08:00
add
This commit is contained in:
parent
02355d42b0
commit
be3bae18d5
49
inject.js
49
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",
|
||||
|
35
options.html
35
options.html
@ -35,6 +35,24 @@
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-remove-dyn-debugger">remove-dyn-debugger(need selected "hook-Function" or "hook-eval")</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-settimeout">hook-settimeout</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-setinterval">hook-setinterval</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-random">是否启用启用下面三种调试功能</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-random-freeze">config-hook-random(让 random 函数固定返回 0.5)</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-random-fake">config-hook-random(让 random 变成伪随机函数。如果已经配置了该伪随机,则会覆盖上面的 0.5)</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px">
|
||||
<input type="checkbox" data-key="config-hook-time-freeze">config-hook-time(时间函数返回的值固定成一个数字)
|
||||
<input style="width: 150px" type="text" data-key="config-hook-time-freeze-number" id="show_now">
|
||||
<button style="padding: 0px" id="get_now">获取当前时间戳用于固定时间 (注意!!!由于固定时间可能会影响到cookie设置,所以请生成一个当前时间戳再行使用)</button>
|
||||
</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-time-performance">config-hook-performance-now(这个时间函数返回的值固定成一个数字)</label>
|
||||
<br/>
|
||||
<div style="border: 1px solid red; margin: 1px">
|
||||
<div style="margin: 1px; color: red">
|
||||
此处的两个配置会影响后面的全部挂钩操作
|
||||
@ -45,21 +63,18 @@
|
||||
<div style="margin: 1px">
|
||||
<input style="width: 98%" type="text" data-key="config-hook-regexp-url">
|
||||
</div>
|
||||
<div style="margin: 1px">
|
||||
<label ><input type="checkbox" data-key="config-hook-log-at">hook-log-at(是否输出函数触发地址)</label>
|
||||
</div>
|
||||
</div>
|
||||
<label ><input type="checkbox" data-key="config-hook-cookie">hook-cookie</label>
|
||||
<label ><input type="checkbox" data-key="config-hook-log-at">是否在调试输出时,输出函数出发的地址</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-cookie">是否对 cookie 进行挂钩调试输出</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-cookie-add-debugger">hook-cookie-add-debugger</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-cookie-get">hook-cookie-get</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-cookie-set">hook-cookie-set</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-settimeout">hook-settimeout</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-setinterval">hook-setinterval</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-encrypt-normal">hook-自带加解密函数</label>
|
||||
<label ><input type="checkbox" data-key="config-hook-encrypt-normal">是否启用下面几个加解密函数挂钩输出功能</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-JSON.parse">hook-JSON.parse</label>
|
||||
<br/>
|
||||
@ -81,7 +96,7 @@
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-btoa">hook-btoa</label>
|
||||
<br/>
|
||||
<label ><input type="checkbox" data-key="config-hook-domobj">hook-domobj</label>
|
||||
<label ><input type="checkbox" data-key="config-hook-domobj">是否启用挂钩 DOM 对象的原型的功能调试输出</label>
|
||||
<br/>
|
||||
<label style="margin-left: 20px"><input type="checkbox" data-key="config-hook-domobj-get">hook-domobj-显示get输出</label>
|
||||
<br/>
|
||||
|
@ -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
|
||||
})
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user