granded
发表于 2024-5-6 22:45:36
李恒道 发表于 2024-5-6 21:22
就是找关键的系统一定会执行到的api
利用基础API hook来执行我们的代码
懂了,那看来我还是直接另起炉灶快些,我这个是委派了一个自定义点击事件上传文件,我直接构造xhr快些。
granded
发表于 2024-5-6 23:08:18
李恒道 发表于 2024-5-6 21:22
就是找关键的系统一定会执行到的api
利用基础API hook来执行我们的代码
我突然发现他用了appendchild添加script,那我直接hook这个了哈哈
rhdom
发表于 2024-9-1 16:21:14
我今天实际试了一下,拦截后再执行原有脚本代码也达不到原有的效果,不知道为什么?
rhdom
发表于 2024-9-1 16:22:39
```
// ==UserScript==
// @name 拦截脚本加载
// @namespace http://tampermonkey.net/
// @version 2024-09-01
// @descriptiontry to take over the world!
// @author You
// @match https://dailydictation.com/exercises/ielts-listening/cam19-test-3-part-2.1375/listen-and-type
// @icon https://www.google.com/s2/favicons?sz=64&domain=dailydictation.com
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// @run-at document-start
// @grant GM_addElement
// ==/UserScript==
const origiforEach=unsafeWindow.Array.prototype.forEach
function runScript(){
GM_xmlhttpRequest({
url:"https://dailydictation.com/assets/appDictation.3872752ea90dfe30bc7c.js",
method :"GET",
headers: {
"Content-type": "application/x-www-form-urlencoded"
},
onload:function(xhr){
console.log(xhr.responseText);
GM_addElement('script', {
textContent: xhr.responseText // .replace('An({', 'false && An({')
});
}
});
}
unsafeWindow.Array.prototype.forEach=function(...args){
let err= new Error('大赦天下');
// console.log('keys大赦天下',err)
if(err.stack.indexOf('appDictation.3872752ea90dfe30bc7c.js')!==-1){
console.log("拦截成功")
runScript()
throw err;
}
return origiforEach.call(this,...args)
}
```
rhdom
发表于 2024-9-1 16:24:03
@李恒道 大佬,能不能帮忙看看为什么
rhdom
发表于 2024-9-1 16:54:06
此外,我试了下GM_webRequest,只能工作于几个fetch类型的请求,script类型的不能拦截
GM_webRequest([
{ selector: '*dailydictation.com/*', action: 'cancel' }
], function(info, message, details) {
console.log("Request Info:", info);
console.log("Message:", message);
console.log("Details:", details);
});
rhdom
发表于 2024-9-1 17:17:01
知道了,GM_webRequest可以,需要加上// @run-at document-start
但是神奇的是,我重定向到另外一个地址后,执行效果就不一样了。(神奇了,raw.githubusercontent.com返回0KB,用jsdelivr转一下终于可以了。。。)
李恒道
发表于 2024-9-2 18:14:19
rhdom 发表于 2024-9-1 16:24
@李恒道 大佬,能不能帮忙看看为什么
哥哥下次尽量单开一个贴
我旅游去了今天刚回来QAQ
rhdom
发表于 2024-9-5 13:24:34
李恒道 发表于 2024-9-2 18:14
哥哥下次尽量单开一个贴
我旅游去了今天刚回来QAQ
{:4_110:}{:4_110:}{:4_110:}