本帖最后由 侃遍天下无二人 于 2021-11-27 12:53 编辑
4399的实名认证真是越来越恶心了,本以为只是响应国家号召做点表面功夫,没想到现在他们又在网页上加了反调试
话说小学生有那么厉害吗
这次就以 森林冰火人6 为例,给大家讲讲怎么关掉实名认证(这个方法应该只对不需要登录的游戏有意义)
首先打开游戏,很快界面提示要实名认证才能玩,同时游戏背景一片白色,但是几秒钟后,我们依旧听到了游戏的背景音,这说明资源加载到了本机,只是被遮挡了
打开开发人员工具,发现进入了无限debugger:
这个时候按ctrl + F8 停用所有断点即可,我们这次要做的事情很简单,用不着分析js
接下来进入 元素 标签,发现sdkDialog和cmMask,复制它们的js路径
然后在控制台粘贴并改写成如下代码,并回车:
[JavaScript] 纯文本查看 复制代码 document.querySelector("#Anti_open").remove();
document.querySelector("#Anti_mask").remove();
可以发现实名认证和灰色的蒙版都消失了
接下来,选中游戏白屏的部分,会发现元素指向了一个叫pusher的:
同样,复制它的js路径,并改写成如下代码执行,游戏正常显示了:
[JavaScript] 纯文本查看 复制代码 document.querySelector("#pusher").remove()
注意:4399似乎在js里塞了垃圾代码,调试器打开时性能下降得很厉害,用完就赶紧关了吧
接下来,在油猴添加一个新脚本:
将我们先前得到的代码合并在一起,并改写成如下形式,粘贴到油猴中:
[JavaScript] 纯文本查看 复制代码 window.onload = function(){
document.querySelector("#Anti_open").remove();
document.querySelector("#Anti_mask").remove();
document.querySelector("#pusher").remove();
}
其中window.onload的作用是确保我们的代码在网页完全加载好的时候才执行,以免执行过早导致未删除元素
另外,还要将脚本里的 @match 改为 http://www.4399.com/*
以保证对所有游戏都有效
处理好后,你的脚本大概应该长这样:
现在可以尝试打开一个游戏玩玩了,会发现4399仍会弹出实名认证,但很快会被自动关闭 |