ajaxHooker和抖音直播的secsdk
在使用`ajaxHooker`后,发现无法加载出二维码👇!(data/attachment/forum/202502/02/144544fzdfs3uebzfjes4f.png)
查看控制台报错
!(data/attachment/forum/202502/02/144612sk9cg5gzkwlwbxb5.png)
!(data/attachment/forum/202502/02/144616bptu81s5kpmsossz.png)
测试屏蔽[https://lf3-static.bytednsdoc.com/obj/eden-cn/fapybjlz_lm_zlp/ljhwZthlaukjlkulzlp/security/secsdk.umd.js](https://lf3-static.bytednsdoc.com/obj/eden-cn/fapybjlz_lm_zlp/ljhwZthlaukjlkulzlp/security/secsdk.umd.js)就可以正常加载了,想问问各位哥哥怎么修改ajaxHooker来修复该问题
@李恒道 @王一之 gg看看{:4_98:} 哥哥提供一个测试脚本例子和网址 李恒道 发表于 2025-2-2 15:45
哥哥提供一个测试脚本例子和网址
gg试试
[https://live.douyin.com/645585351083](https://live.douyin.com/645585351083)
```
// ==UserScript==
// @name ajaxhooker
// @namespace http://tampermonkey.net/
// @version 2025-02-02
// @descriptiontry to take over the world!
// @author You
// @match https://live.douyin.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=douyin.com
// @require https://scriptcat.org/lib/637/1.4.3/ajaxHooker.js
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
})();
``` whitesev 发表于 2025-2-2 16:40
gg试试
(https://live.douyin.com/645585351083)
大概看了一下
这个页面不太能调
在抖音还是推荐用原生hook方式
出错原因是因为 n.nativeXMLHttpRequestOpen.call(o, "HEAD", "".concat(a, "//").concat(e).concat(t)),
如果使用了ajaxhook会传入proxy
再底层是jsvmp
如果要追溯具体原因很麻烦
猜测是因为内部做了什么对xhr的操作没catch到或者/进行类似类型判断导致错误/对xhr进行原生的什么操作了
所以综上所示可能直接xhr最普通的劫持比较好,改起来感觉原因排查很困难...混淆太重了
错误在_0x5cab3c['apply'](_0x43c426, _0x50e027);
传入了一个proxy的xhr对象而调用了open原生函数
抖音写的还挺抽象的 李恒道 发表于 2025-2-2 17:18
错误在_0x5cab3c['apply'](_0x43c426, _0x50e027);
传入了一个proxy的xhr对象而调用了open原生函数
抖 ...
谢谢gg解答!抖音确实抽象 这个bug已有人反馈过,在这两个地方有过讨论:
https://scriptcat.org/zh-CN/script-show-page/637/issue/769/comment
https://scriptcat.org/zh-CN/script-show-page/637/issue/835/comment
其原因是Proxy对象用作call、apply的this参数时会报 Illegal invocation 错误,原生方法内部会检查this是否为原生xhr对象。解决这个问题目前我只有以下几种思路:
1、不使用Proxy劫持方案。这是1.3版本以前的做法,我加入Proxy实际上是不得已而为之,参考:
https://scriptcat.org/zh-CN/script-show-page/637/issue/547/comment
2、劫持所有函数的call和apply,当发现目标是xhr方法时替换为原生的this。这样做代价很大,问题也很多。
3、针对性劫持,当发现目标站点是字节系网站时(目前仅在头条和抖音下出现)劫持call、apply。这样做泛用性很差,而且有点治标不治本的感觉。
我对目前的解决方案不够满意,所以迟迟没有处理这个问题,不知道各位有没有什么更好的想法?
PS: 对库有任何疑问或建议请直接在原帖下回复,或在脚本站反馈,单独发帖我可能不会看到。 本帖最后由 whitesev 于 2025-2-6 08:51 编辑
cxxjackie 发表于 2025-2-4 22:28
这个bug已有人反馈过,在这两个地方有过讨论:
https://scriptcat.org/zh-CN/script-show-page/637/issue/7 ...
我尝试使用1.2.4版本的进行劫持,发现在抖音的推荐页面它请求的推荐视频数据它只会触发readyState=0,然后它后面的请求就调用的apply导致未成功劫持
或许可以给ajaxHooker加上配置选项,配置为是否劫持apply、call,这样子是否可行?
whitesev 发表于 2025-2-6 08:47
我尝试使用1.2.4版本的进行劫持,发现在抖音的推荐页面它请求的推荐视频数据它只会触发readyState=0,然后 ...
可以是可以但终究也是治标不治本,我觉得还不如第3种方案智能一点,我回头再研究下这个js,尽量从全局特征而非域名入手,姑且先用针对性劫持顶着吧,等以后出现新的再考虑。
页:
[1]
2