前段时间,为某网站写了个油猴脚本,并发布到Greasy Fork上...
主要是因为网站的广告特别恶心,满屏广告不说,想下载个东西的时候,点击了,不仅没能打开正确的链接,还总是跳出新的广告,并且是个不断循环的过程,用户压根没有下载的机会,只能当个无情的刷广告机器。
想关闭更是异想天开
使用体验就像下面这位一样:

图1 牛皮癣广告
比较有意思的是,官方把这种情况定性为"误触",为此,他们还设计了个叫"误触卡"的东西,来避免广告误触,笑了。
且这东西只能通过在app做任务限量获取,虽然没用过,但不难想象,手段肯定是看广告,未来可能还会有付费的方式。
网站本身不提供下载功能,所以都是以外部链接为主,运作机制比较简单,资源页提供了"下载链接",点击后跳转到广告页,里面才显示真的下载链接,像是百度云、夸克、MEGA之类的。
但是,恶心的地方就在这里,无论点广告页的哪里,都会继续跳广告,并且还可能触发无限循环,而没法拿到真下载链接。
所以,我才写了这个脚本...
事实上也没花多少功夫,只是稍微调试了网站,发现资源页里的"下载链接",其实已经包含真的下载链接,只不过经加密了而已,通过逆向得到加密算法后,真下载链接也自然而然到手了。

图2 在原链接旁提供【复制】功能
这就是脚本的主要功能:绕过广告页,获取资源下载链接。
从发布到现在,运行得挺好的,直到几天前,有人反馈说脚本用不了了...
开始以为是网站的正常迭代更新,但是,当我发现,脚本添加的节点被隐藏的时候,有点绷不住了。。
display: none;
原来是刻意针对,精准打补丁。
最初我还纳闷自己什么时候写了这种样式,对代码从头到尾检查了一遍也没发现,愣了一会儿才醒悟。
原因我多少有点眉目,无非与利益相关,网站的主要收益来源于广告,使用脚本=少人看广告=少收益。
看广告可以,但体验疑似确实有点太过于恶心了。
虽然也没几个人用:

图3 脚本下载量
只是有点惊讶,官方竟然会精准打击脚本,甚至这种聊胜于无的也没放过,写了那么多这还是头一回。
今天做最后一次代码更新,如果后续再被针对性打补丁时,可能就不再发布到Greasy Fork上了,改起来是简单,但也是白写,还伴随风险。
没办法。
----- 20251112
脚本刚改没几天,官方又又更新,理所当然地,脚本也又失效了。
说实话,这反而有点激起我的好胜心了,原本只打算到上一次为止的。有点攻防战的感觉,只不过,双方都是明文操作,照着对方的代码写代码罢。
但其实没什么意义,更新不是增加逆向难度,而是纯粹前端层面的操作,比方说,隐藏了一下节点、属性、改一下类名称,或者重新渲染页面,把脚本添加的节点刷掉这样的,加密还是原来的加密,没动过。
就是为了适配原本的用法,有点麻烦,合适的锚点不好找,每一次,对方都会"精准"地把我的配置弄没,真笑了。
再玩玩,当做锻炼临场逆向能力的练习,这一期,我加入了xhr hook来绕过数据隐藏(原本是直接放在dom节点上,可直接获取)。

图4 v1.2.4
倒想看看,对面还会出些什么样的招数。
----- 20251114
没意思,本来还以为可以再对抗久一点。
连发邮件要我下架脚本,有种像是打小报告的感觉,从技术的角度来说。。确实是有点玩不起了。

图5 官方邮件
大致上说,脚本解析了网站前端架构,获取了核心秘钥,涉及到整个平台安全问题之类的,请求下架脚本,不要公开传播。
尽管对方是个违规内容的搬运站,国内没有备案,说到这个份上了多少还是得尊重,咱也不想麻烦上身。
本来就靠牛皮癣广告吃饭,而这个脚本虽然不能说致残,但造成的损伤也不算小。
话又说回来,如果能被这样一个小脚本阻断财路的话,是不是该说这个网站本来就很有问题?
只能苦了用户,再多挂一会就下架,也不知道有几个能更新上最新代码。
不是不想,而是不能,就这样。