啊麟 发表于 2024-3-22 22:15:50

[油猴脚本开发指南] 消失的console

本帖最后由 啊麟 于 2024-3-22 22:17 编辑

####在学习ScriptCat时,遇到个奇怪的问题,ScriptCat居然不注入?
!(data/attachment/forum/202403/22/220542wimlilbb3r8t5rid.jpg)

```js
(function() {
    'use strict';
    console.log("🐱 run ing...")
    // ellipsis...
})();
```

####遇到这个问题我首先查看了@match @run-at ,发现都没问题。
####这就奇怪了,后面问了下mhsj。
!(data/attachment/forum/202403/22/220233fm05ab03aahhbh6m.png)

####结果是console 被劫持。。。 这网站居然还劫持我的console,给我挖了个坑。

####后面在网站源代码上找到了对应的劫持代码,实际上就是替换成它自己的console
!(data/attachment/forum/202403/22/220443dnj93oi9eoixwl4o.png)

####可恶....好好的劫持我的console干嘛
!(data/attachment/forum/202403/22/220528fki66u8v6xh65za2.jpg)

#### 后面试了document-start 抢先拿到console保存,发现居然不行?这就头疼了。。。
!(data/attachment/forum/202403/22/220749a2jlby1ypvyrjq1d.jpg)

#### 使用GM_log也不是不行,就是很多特殊类型无法显示。对后续开发肯定有很大阻碍。
!(data/attachment/forum/202403/22/221003iaqn6pqef3ne6xze.jpg)

#### 后面仔细一想,我可不可以创建一个新的领域?在新的领域里拿到新的console?
!(data/attachment/forum/202403/22/221039sn6e3v6qvl93lydn.jpg)

#### 开整!!!

```js
(function () {
    'use strict';
    // 领域展开
    var iframe = document.createElement('iframe')
    iframe.style.display = 'none' // 隐藏
    document.body.appendChild(iframe) // 添加
    var _console = iframe.contentWindow.console // new console
    _console.log("进入")

})();
```

#### 成了!!!
!(data/attachment/forum/202403/22/221509x6v2h44n5q22rr11.jpg)
!(data/attachment/forum/202403/22/221355dgcydtjctxcunyzt.png)


#### 打完收工

#### 感谢 李恒道 感谢mhsj 感谢scriptcat

李恒道 发表于 2024-3-23 05:07:56

直接删除掉grant none进入沙盒模式基本就能正常打印了

王一之 发表于 2024-3-23 10:22:58

![](https://bbs.tampermonkey.net.cn/data/attachment/forum/202403/22/220542wimlilbb3r8t5rid.jpg)

算是脚本猫的一个bug,后续看看怎么修复

李恒道 发表于 2024-3-24 05:46:48

王一之 发表于 2024-3-23 10:22
![](https://bbs.tampermonkey.net.cn/data/attachment/forum/202403/22/220542wimlilbb3r8t5rid.jpg)
...

说起来
油猴最近更新删除了proxyWindow的document处理逻辑
导致我之前的分析全没用了...

是不是要上mv3的前置准备?

王一之 发表于 2024-3-24 13:04:46

李恒道 发表于 2024-3-24 05:46
说起来
油猴最近更新删除了proxyWindow的document处理逻辑
导致我之前的分析全没用了...

可能是,看看哪些失效了

潘钜森 发表于 2024-3-24 13:52:55

本帖最后由 潘钜森 于 2024-3-24 13:56 编辑

> [李恒道 发表于 2024-3-23 05:07](forum.php?mod=redirect&goto=findpost&pid=79441&ptid=6415)
> > 直接删除掉grant none进入沙盒模式基本就能正常打印了

**在head中加入了script怎么破?网站:[https://www.keke6.app/play/223267-14-367148.html](https://www.keke6.app/play/223267-14-367148.html)**
[`https://vf.vukfnqr.com/vod_pc_static_kkdy/frameworks/disable-devtool/latest/index.min.js`](https://vf.vukfnqr.com/vod_pc_static_kkdy/frameworks/disable-devtool/latest/index.min.js)
**DISABLE-DEVTOOL**他还设置了定时器一直在清除控制台数据

李恒道 发表于 2024-3-24 22:54:23

潘钜森 发表于 2024-3-24 13:52
> [李恒道 发表于 2024-3-23 05:07](forum.php?mod=redirect&goto=findpost&pid=79441&ptid=6415)
> >...

这个跟麟的一样
一之bug还没修复

可以像他一样取iframe的console
修复的话直接去掉none进沙盒就行了
```js
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      2024-03-24
// @descriptiontry to take over the world!
// @author       You
// @match      https://www.keke6.app/play/223267-14-367148.html
// @icon         https://www.google.com/s2/favicons?sz=64&domain=keke6.app
// @grant      unsafeWindow
// @run-at       document-start
// ==/UserScript==

unsafeWindow.console.clear=()=>{}

console.log('8888')
```
页: [1]
查看完整版本: [油猴脚本开发指南] 消失的console