携手创作,共同成长!这是我参与「掘金日新计划 · 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
上面,想清楚这个时间就好了。