This commit is contained in:
cilame 2023-04-14 20:53:51 +08:00
parent e26cad4968
commit a92c75d52f
6 changed files with 137 additions and 29 deletions

View File

@ -17,7 +17,7 @@
<ul>
<button class="act">dom对象 hook 配置</button>
<button>注入代码</button>
<button>修改返回值</button>
<button>修改代理/返回值</button>
<button>AST混淆解密</button>
<button>代码模板(RPC...)</button>
<button>混淆器</button>
@ -139,6 +139,11 @@
<!-- <div>修改代理:<input type="text" data-key="config-proxy_config" id="proxy_config"></div> -->
</section>
<section class="tab">
<h2 style="margin-bottom: 0px;margin-top: 50px;">pac代理地址</h2>
<label ><input type="checkbox" data-key="config-pac_proxy">是否打开返回值替换开关</label>
<hr>
<textarea id='proxy_config' data-key="config-proxy_config" style="width: 100%; height: 200px"></textarea>
<h2 style="margin-bottom: 0px;margin-top: 50px;">修改匹配URL的返回值</h2>
<label ><input type="checkbox" data-key="config-replacer_toggle">是否打开返回值替换开关</label>
<hr>
@ -252,6 +257,7 @@
</section>
</div>
<script src="tools/jquery.min.js"></script>
<script src="./tools/common.js"></script>
<script src="./tools/sub_logger.js"></script>
<script src="options.js"></script>
<script src="tools/model_funcs.js"></script>

View File

@ -448,6 +448,17 @@ document.querySelectorAll("input").forEach(function(v){
chrome.storage.local.set({
[e.target.dataset.key]: e.target.checked
})
if (e.target.dataset.key == 'config-pac_proxy'){
if (e.target.checked){
chrome.storage.local.get(['config-proxy_config'], function(res){
if (res['config-proxy_config']){
set_my_proxy(res['config-proxy_config'])
}
})
}else{
set_my_proxy()
}
}
sub_logger()
}
if (v.type == 'text' || v.type == 'password'){
@ -676,10 +687,22 @@ chrome.debugger.onDetach.addListener(function(){
debug_tab = false
})
// var proxy_config = document.getElementById('proxy_config');
// proxy_config.addEventListener("change", function(v){
// v.target.value
// })
var proxy_config = document.getElementById('proxy_config')
proxy_config.placeholder = `// 请在第一行输出你使用的 pac 路径例如:
// 1: PROXY 127.0.0.1:8888
// 2: HTTPS hk2.link.ac.cn:152;HTTPS fmt1.link.ac.cn:995
`
chrome.storage.local.get([proxy_config.dataset.key], function (result) {
proxy_config.value = result[proxy_config.dataset.key] || '';
})
function change_proxy_config(v){ console.log('change_proxy_config')
chrome.storage.local.set({
[v.target.dataset.key]: v.target.value
})
}
proxy_config.addEventListener("input", change_proxy_config)
proxy_config.addEventListener("change", change_proxy_config)
proxy_config.addEventListener("blur", change_proxy_config)
var mysec = document.getElementById('my_secret')
var mycode_dec = document.getElementById('my_code_dec')

View File

@ -133,18 +133,25 @@
<input type="checkbox" data-key="config-replacer_toggle"><div class="slider"></div>
</label>
<div style="float: right; padding: 10px">是否替换返回值</div>
<label class="switch">
<input type="checkbox" data-key="config-pac_proxy"><div class="slider"></div>
</label>
<div style="float: right; padding: 10px">是否开启pac代理</div>
<!-- <label class="switch">
<input type="checkbox" data-key="config-hook-new-tab"><div class="slider"></div>
</label>
<div style="float: right; padding: 10px">配置newTab页</div> -->
<div>
<button id="showoptions" class="button" style="vertical-align:middle"><span>打开配置页面</span></button>
<button id="ast_page" class="button" style="vertical-align:middle"><span>ast工具页面</span></button>
<button id="diff_page" class="button" style="vertical-align:middle"><span>文本对比页面</span></button>
<button id="addlistener" class="button2" style="vertical-align:middle"><span>生成临时环境</span></button>
<!-- <button id="logtoggle" class="button2" style="vertical-align:middle"><span>开关输出日志</span></button> -->
<!-- <button id="clone_page" class="button2" style="vertical-align:middle"><span>拷贝当前页面</span></button> -->
<hr>
<button id="update_page" class="button2" style="vertical-align:middle"><span>工具更新地址</span></button>
</div>
<script src="./tools/common.js"></script>
<script src="./tools/sub_logger.js"></script>
<script src="popup.js"></script>
</body>

View File

@ -15,6 +15,17 @@ document.querySelectorAll("input").forEach(function(v){
chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {});
});
}
if (e.target.dataset.key == 'config-pac_proxy'){
if (e.target.checked){
chrome.storage.local.get(['config-proxy_config'], function(res){
if (res['config-proxy_config']){
set_my_proxy(res['config-proxy_config'])
}
})
}else{
set_my_proxy()
}
}
chrome.storage.local.set({
[e.target.dataset.key]: e.target.checked
})
@ -69,30 +80,50 @@ hook-domobj-显示func输出
// })
const bg = chrome.extension.getBackgroundPage()
document.getElementById('clone_page').addEventListener('click', function(e){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
var url = tabs[0].url
var html = bg.get_html(url)
if (html){
var url = URL.createObjectURL(new Blob(html.split(''), {type: 'text/html'}))
chrome.downloads.download({
url: url,
filename: 'clone_html.html'
});
}else{
alert('获取html结构失败请右键需要拷贝的页面的空白处选择“打开 html 调试拷贝”。刷新页面后,确保页面资源加载充足后再重新点击“拷贝当前页面”')
var clone_page = document.getElementById('clone_page')
if (clone_page){
clone_page.addEventListener('click', function(e){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
var url = tabs[0].url
var html = bg.get_html(url)
if (html){
var url = URL.createObjectURL(new Blob(html.split(''), {type: 'text/html'}))
chrome.downloads.download({
url: url,
filename: 'clone_html.html'
});
}else{
alert('获取html结构失败请右键需要拷贝的页面的空白处选择“打开 html 调试拷贝”。刷新页面后,确保页面资源加载充足后再重新点击“拷贝当前页面”')
}
});
})
}
var update_page = document.getElementById('update_page')
if(update_page){
update_page.addEventListener('click', function(e){
function closePopup() {
window.close();
document.body.style.opacity = 0;
setTimeout(function() { history.go(0); }, 300);
}
closePopup()
chrome.tabs.create({
url: 'https://github.com/cilame/v_jstools',
});
})
}
document.getElementById('ast_page')?.addEventListener('click', function(){
var temp = chrome.runtime.getURL('astexplorer_babel.html')
chrome.tabs.create({
url: temp
});
})
document.getElementById('diff_page')?.addEventListener('click', function(){
var temp = chrome.runtime.getURL('diff_text.html')
chrome.tabs.create({
url: temp
});
})
document.getElementById('update_page').addEventListener('click', function(e){
function closePopup() {
window.close();
document.body.style.opacity = 0;
setTimeout(function() { history.go(0); }, 300);
}
closePopup()
chrome.tabs.create({
url: 'https://github.com/cilame/v_jstools',
});
})

37
tools/common.js Normal file
View File

@ -0,0 +1,37 @@
function set_my_proxy(proxy){
if (proxy){
var proxylist = proxy.trim().split('\n').map(function(e){
return e.trim()
})
var toggle = false
for (var i = 0; i < proxylist.length; i++) {
if (proxylist[i] && !proxylist[i].startsWith('//')){
proxy = proxylist[i]
toggle = true
break
}
}
if(!toggle){
proxy = ''
}
}else{
proxy = proxy||''
}
var pacScriptConfig = {
mode: 'pac_script',
pacScript: {
data: `
function FindProxyForURL(url, host) {
return "${proxy};DIRECT";
}
`
}
};
chrome.proxy.settings.set({ value: pacScriptConfig, scope: 'regular' }, function() {
if (proxy){
// alert("代理设置完成");
}else{
// alert("取消代理链接");
}
});
}

View File

@ -3,6 +3,7 @@ function sub_logger(){
'config-hook-global',
'config-myinject_toggle',
'config-replacer_toggle',
'config-pac_proxy',
], function(e){
chrome.browserAction.setBadgeBackgroundColor({color: '#BC1717'});
var info = ''
@ -12,6 +13,9 @@ function sub_logger(){
if (e['config-myinject_toggle']){
info += 'I'
}
if (e['config-pac_proxy']){
info += 'P'
}
if (e['config-replacer_toggle']){
info += 'R'
localStorage.webRedirect_toggle = JSON.stringify(true)