李恒道 发表于 2021-9-4 16:08:45

脚本体验师001 发表于 2021-9-4 13:18
李大师哥哥讲vue的劫持,这一块那一块的

这个在计划,但是离完成还有很久....大概再给我一个半月吧,还在研究源码

李恒道 发表于 2021-9-4 16:19:28

cxxjackie 发表于 2021-9-4 13:40
不不不,我写了道哥就没东西写了道哥教程写的图文并茂,还有视频讲解,我就不献丑了。 ...

{:4_104:}哥哥别闹了,如果以一之为战力,我大概是0.3之,你大概是1.5之了

cxxjackie 发表于 2021-9-4 17:26:24

李恒道 发表于 2021-9-4 16:19
哥哥别闹了,如果以一之为战力,我大概是0.3之,你大概是1.5之了

这就捧杀我了,让我写个脚本猫那样的扩展我可做不来,太复杂了

rubinTime 发表于 2021-12-5 21:46:45

cxxjackie 发表于 2021-8-25 21:22
我还是不喜欢Proxy这种劫持整个对象的做法,效率问题先放一边,看你的代码逻辑也显得非常复杂。像这个 ...

哥哥,我记得箭头函数是不是没有arguments对象,如果箭头函数上面套了一层普通函数的话,箭头函数中使用argument对象是会使用上层的普通函数的arguments对象

cxxjackie 发表于 2021-12-6 10:11:07

rubinTime 发表于 2021-12-5 21:46
哥哥,我记得箭头函数是不是没有arguments对象,如果箭头函数上面套了一层普通函数的话,箭头函数中使用a ...

是的,this也一样。

soulyale 发表于 2022-1-21 15:04:46

本帖最后由 soulyale 于 2022-1-21 15:05 编辑

我试着写个jQuery的Ajax的劫持,请大佬看看有什么问题没?

(function(){

    let oldajx=$.ajax;

    async functionfuckajx(){
      oldajx.apply($,arguments).then((response)=>{
            console.info(arguments.url,response.data);
            return response;});
      
    }
    $.ajax=fuckajx;
   
})();



李恒道 发表于 2022-1-21 16:55:53

soulyale 发表于 2022-1-21 15:04
我试着写个jQuery的Ajax的劫持,请大佬看看有什么问题没?

这个肉眼看是绝对看不出来的,一边调输入和输出一边写吧

youwh 发表于 2023-6-1 21:42:08

我试着调试这个fetch劫持两个多小时了,都没弄明白,转过去看B站视频也没找到你的调试步骤,还是没明白,还是伸手直接问了,代码如下,除了'xml begin'这个其他的都没有打印,应该是没有触发调用,实在不明白怎么触发劫持,难道还有什么其他的条件吗,还是希望有一个完整的例子,不怕简单就怕不能代码不能跑🤣🤣
```
// ==UserScript==
// @name         Simple
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @author       You
// @match      https://bbs.tampermonkey.net.cn/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=baidu.com
// ==/UserScript==
console.log('xml begin')
let oldfetch = fetch;
async function fuckfetch() {
    console.log('xml1 bgin')
    return new Promise((resolve, reject) => {
      console.log('xml2 bein')
      oldfetch.apply(this, arguments).then(response => {
            console.log('xml3 begn')
            const oldJson = response.json;
            response.json = function() {
                return new Promise((resolve, reject) => {
                  oldJson.apply(this, arguments).then(result => {
                        result.hook = 'success';
                        resolve(result);
                  });
                });
            };
            resolve(response);
      });
    });
}
window.fetch = fuckfetch;

```

cxxjackie 发表于 2023-6-1 22:19:07

youwh 发表于 2023-6-1 21:42
我试着调试这个fetch劫持两个多小时了,都没弄明白,转过去看B站视频也没找到你的调试步骤,还是没明白 ...

一个是这个页面没有fetch请求,只有xhr请求,所以没触发。另一个是window.fetch应该改成unsafeWindow.fetch,油猴在没有显式声明@grant none的情况下是沙盒环境,window和unsafeWindow中的很多对象不属于同一引用,而劫持应当作用于真实环境,即unsafeWindow。

youwh 发表于 2023-6-1 23:10:07

cxxjackie 发表于 2023-6-1 22:19
一个是这个页面没有fetch请求,只有xhr请求,所以没触发。另一个是window.fetch应该改成unsafeWindow.fet ...

弄好了,谢谢哥哥,哥哥真棒👍
页: 1 2 3 [4]
查看完整版本: [油猴脚本开发指南]理解fetch劫持