如何让AI给你写油猴脚本,从此网课不用怕!

admin 2026-08-23 05:04:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档通过分析某继续教育平台的计时机制,揭示其学时统计依赖提交接口record.do的length参数,该参数记录真实墙钟秒数。基于此,作者指导读者借助AI工具编写油猴脚本以自动刷课时,建议保持最小真实观看时长并通过技术手段操纵length值,从而快速完成课程学习。文中包含详细技术分析和操作步骤。 综合评分: 40 文章分类: 漏洞分析,渗透测试,威胁情报,AI安全,其他


cover_image

如何让AI给你写油猴脚本,从此网课不用怕!

原创

大表哥吆 大表哥吆

kali笔记

2026年8月18日 00:00 甘肃

在小说阅读器读本章

去阅读

在工作和学习中,我们常常会遇到各类网课平台或继续教育平台,通过看视频来学习。说实在的,真的是一点意思都没有。通常,我们可以用Tampermonkey(油猴)脚本,来实现刷课时,用极短的时间学完整个科目。但这对普通用户而言,是有很高的门槛!


接下来,我们以某继续教育平台为例,借助AI工具帮助我们来完成油猴脚本的编写。

平台是怎么”计时”的

通常,这些平台如果通过插件进行“快进”,是无法获得学时的。要”加速”,先得搞清楚学时到底是怎么被统计出来的。接下来,我们先将整个页面下载,完成后,将整个页面(主要是相关js)扔给AI进行分析。看看他是如何计时的。

完成后分析效果如下:

1.1 学时来自哪个接口

打开视频学习页video/study.do抓包能看到核心请求只有一个:

POST /mizar/study/activity/video/record.do    position=143          ← 当前播放到第几秒    length=180            ← 本次"真实观看"了多少秒    token=...             ← 表单里自带的会话 token    trainCourseId=... courseActivityId=... 等一堆参数

length 就是服务器用来累计学时的那一栏。它由页面的 getLengthAndReTimer() 函数计算出来。

1.2 getLengthAndReTimer 的计时逻辑

页面里埋了一套纯墙钟计时器,关键代码简化后是这样:

// 播放时:记录起始时间function timePlay() {    startTime = new Date().getTime();    paused = false;} // 暂停时:把这段时间累加进 totalLengthfunction timePause() {    if (!paused) {        endTime = new Date().getTime();        totalLength += Math.round((endTime - startTime) / 1000);    }    paused = true;} // 提交时调用:返回本次累计的观看秒数,然后清零重来function getLengthAndReTimer() {    if (startTime != null) {        endTime = new Date().getTime();        totalLength += Math.round((endTime - startTime) / 1000);    }    var total = totalLength;    resetTimer();                 // totalLength = 0    if (!paused) timePlay();      // 还在播就重新开始计时    return total;}

要点length 是一个”增量”,它表示”自上次提交以来,真实过去了多少秒”,而不是累计看了多久。服务器把每一次的 length 累加起来,就是总学时。

1.3 record.do 提交了什么

页面每 3 分钟触发一次提交(vInterval = 3 * 60 * 1000):

function loopSubmit() {    submitVideo("1");} function submitVideo(vType) {    var vCurTime = parseInt(getLengthAndReTimer());   // 本次观看秒数    var vVideoPosition = parseInt(vplayer.currentTime()); // 播放位置    if (vCurTime > 0 || "2" == vType) {        ajaxSubmit({            url: "/mizar/study/activity/video/record.do",            form: "myForm",            params: { position: vVideoPosition, length: vCurTime }        });    }}

于是真相浮出水面:

  • • length = 两次提交之间的墙钟秒数(只跟时间有关,跟视频画面播到哪无关)。
  • • position = 视频播放位置(跟画面有关,是服务器判断”看到哪了”和反作弊的依据)。

1.4 另一条通道:进度打点

播放器 eduplayer 还会每 30 秒向一个独立的统计域名上报一次播放进度:

GET https://video.xxxxx.com/api/update?data={"video_url":"...","curr_time":143,"user_id":"...","epss_id":"..."}

curr_time 就是当前播放秒数。这条通道更像”观看进度 + 反作弊埋点”,和 record.do 的学时累计是两套东西,但脚本会一起处理,保证两个通道口径一致。

1.5 视频结束与自动跳转

当视频播完,浏览器触发 ended 事件,页面会:

vplayer.on('ended', function () {    onVideoEnd();          // submitVideo("2"):提交结束,length 结算最后一笔    // ...3 秒后    doNext();              // 请求 getNext.do,拿到下一节并跳转});

关键:跳下一节(doNext)只有在 ended 事件真正触发后才会发生。

如上,了解到了整个系统的逻辑结果。接下来便可以让Hermes写初步的脚本。注意:Claude Codex等工具是不会给你写作弊代码的,可以让Hermes先写,写完后让他们去给你改就行了

脚本测试

接下来,我们根据上方得到的步骤让AI给我们写出相关js。并加载到网站进行测试。

对脚本进行测试,汇总BUG

脚本测试效果

如上,一个40分钟的视频,只需看3分钟(要保证你看了)就能完成课时。

更多精彩文章 欢迎关注我们


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:kali笔记 大表哥吆 大表哥吆《如何让AI给你写油猴脚本,从此网课不用怕!》

评论:0   参与:  0