Init
之前 Ghost 搭的的博客遇到了奇怪的问题, 于是新博客决定采用静态方案.
(我以后再也不用 Ghost 了, 感觉就是个大坑)
从今年开始准备多写一些东西, 重拾 Golang, 接触一些新语言比如 Rust, Scala. 被 Python 的 GUI 坑害了许久, 也准备不在这里一条道走到黑, 换换口味写写 Java 也不错 (虽然感觉废话多)
导师的事情终于尘埃落定, 新老板是搞云计算和虚拟环境仿真的, 人还不错, 就是不读邮件 (orz
新的一年, 好好学习, 安心搬砖
超星尔雅网课平台反作弊机制的探究 (3) - 实现
在上一篇文章中, 我们注意到播放器的一个对外接口 getPlayState()
尝试在视频播放时调用此函数, 返回值为 1
. 暂停视频后再次调用, 返回值为 2
可以用此函数判断视频播放是否暂停. 简单的用户脚本代码如下:
超星尔雅网课平台反作弊机制的探究 (2) - 逆向
清空浏览器缓存, 重新开始抓包, 得到 Flash 播放器的加载链接.
GET https://mooc1-1.chaoxing.com/ananas/modules/video/cxplayer/player_4.0.11.swf?v=20161025 HTTP/1.1
下载, 并使用 JPEXS Free Flash Decompiler 反编译, 查找到关键函数 onSendLog()
, 里面有 enc
的生成方式:
超星尔雅网课平台反作弊机制的探究 (1) - 初探
声明: 本文章只供技术学习交流使用, 请同学们诚信学习, 不要擅自尝试本文中的任何方法
网页版的尔雅课程播放器有几个烦人的特点: 第一, 播放时鼠标必须悬停在播放器上方, 鼠标移出播放器外视频就会自动停止播放; 第二, 没看过的部分不可以跳转, 只有看过一次之后才可以任意跳转进度; 第三, 课程播放时会插入课程测试题, 只有完成测试题之后才能继续观看.
这三点都阻止了我们一边学习网课一边打电动. 关于第一点, 在点击播放按键后视频刚开始加载的时迅速将浏览器窗口最小化可破, 因为此时网页脚本还来不及读取鼠标位置, 自然也不会触发鼠标移开事件. 但尔雅的播放器采用 Adobe Flash, 会导致浏览器变得非常卡, 尝试切换浏览器 UA 到 iOS 或者 Android 都会跳转到 App 下载页面. 有必要找到一些方法干掉这些烦人的限制, 让刷网课变得更轻松愉快.