油猴脚本开发之防广告破解

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情


油猴脚本开发之防广告破解

声明

本人所有逆向、破解及爬虫相关教程均是以纯技术的角度来探讨研究和学习,严禁使用教程中提到的技术去破解、滥用、伤害其他公司及个人的利益,以及将以下内容用于商业或者非法用途。

前言

我们在使用浏览器的时候,经常会使用一些防广告的插件和工具,但是有一些网站就是对这种插件对屏蔽,今天就拿其中一个来试试,这个网站叫t66y

准备开始

先在我们的浏览器上面随便装几个常用的去广告软件,然后去这个网站随便打开一篇文章就是出现如下的页面:

等待 10 秒后就会重新加载出想要的数据,我们来分析一下。

寻找关键代码

依旧进行全局搜索,搜索关键字"去广告插件屏蔽, 请等待"看看

发现只有一个文件里面有,而且还是一个js文件,点进去看看分析一下这里的代码

    function r9aeadS() {
        var blockText = '去广告插件屏蔽, 请等待10秒, 或将其关闭即刻恢复浏览';
        if (xxx) {
            // 1006毫秒之后把元素
            var tpcHtml = '';
            setTimeout(function() {
                tpcHtml = $('.tpc_content:eq(0)').html();
                $('.tpc_content:eq(0)').html(blockText);
            }, 1006);
            setTimeout(function() {
                adhtml(tpcHtml);
            }, 10006);
        }
    }
复制代码

可以看出来,上面的代码先把定义了一个变量保存了我们看到了字符串,然后通过下面的 if 判断的是否启用了去广告插件。下面就是两个延迟任务,第一个任务是 1006 毫秒的,是把元素.tpc_content:eq(0)的内容保存下来并使用上面定义的字符串覆盖掉,第二个延迟任务是 10006 毫秒的,是把上面保存的元素.tpc_content:eq(0)的原本的内容在恢复回来。可以看出来这里的关键就是多次提到的元素,我们去网页里面看看这个元素到底是啥。

可以看出这个元素就是我们看到的内容本身。好了,原理找到了剩下的就是破解了

破解方案

由上面的代码可以看出就是目标元素的内容发生了改变,既然这样,我们在破解思路上也可以仿照它,因为它不是立即判断的,而是在 1006 毫秒后进行的判断,所以我们也不能立即进行元素的恢复,所以要分两步进行

  • 一是在刚开始开始同样把元素.tpc_content:eq(0)的内容保存在变量中
  • 二是在 1007 毫秒后(注意这个时间,一定要比它的时间长),进行元素的恢复

这样我们的目标就达成了,让我们看一下完成的代码:

(function() {    
    console.log("load")
    let tpcHtml = $('.tpc_content:eq(0)').html();
    setTimeout(()=>{
        $('.tpc_content:eq(0)').html(tpcHtml);
    }, 1007)
})();
复制代码

结束了

这个文章不是很长,难度呢也适中,主要在这个setTimeout上面,想清楚这个时间就好了。

猜你喜欢

转载自juejin.im/post/7128422102977216543