华人澳洲中文论坛

热图推荐

    不想写网课功课,17 岁少年敲代码“开挂”,后果火到了平台 CEO

    [复制链接]

    2022-10-1 21:17:34 21 0

    Perl 言语的创造人 Larry Wall 曾说,优秀顺序员应该有三大“美德”:懈怠、暴躁和狂妄。其中,懈怠间接作为了顺序员的“第一美德”——由于懒得做一些反复低效的任务,优秀顺序员会花时间钻研如何把任务变得高效省力。
    近来,一名来自英国的 17 岁少年 Alistair Smith 就很好地体现了这一“美德”:由于懒得写网课功课,Alistair 联结敌人对线上平台进行逆向工程,而后搞了个脚本“开挂”。



    一、用脚本跳过 20 分钟的网课视频
    据 Alistair 引见,早在 2018 年他所在的学校就开始使用一种名为 HegartyMaths 的全新在线功课平台。教师会在这个平台上选择一个主题作为家庭功课,先生则要观看对于该主题的一个 10-15 分钟的网课视频(观看的同时还要写条记),并实现一个冗长的测验。
    对此,Alistair 埋怨道:“听起来很简略,但实际上这很费时间,尤为是测验,在最坏的状况下可能需求一个小时能力实现一个主题。”
    正如结尾所说,懈怠这一“美德”很好地体当初了 Alistair 身上:为了逃避写功课,想把更多时间用在打游戏和敲代码上,Alistair 找了他的密友 Scott Hiett,打算一同钻研怎么把这个网课功课“翘掉”,而冲破口天然是 Hegarty 这个在线学习平台。
    经过对前端运用进行逆向工程,Alistair 和 Scott 想出了一个名为 Tampermonkey 的用户脚本。该脚本能够让嵌入式 YouTube 播放器出毛病,显示用户曾经观看了最少 1 次视频,最首要的是教师也能看见这个数字——也就是说,这个脚本能让先生跳过 20 分钟的观看视频时间。
    之后一段时间,Alistair 学校的许多敌人都找他要 Tampermonkey 脚本跳过网课视频,后续在屡次使用中,Alistair 发现乃至能够把观看次数设为 9999 次:“不外每次咱们这样做时,咱们的帐户都会被 Hegarty 团队重置。”
    二、200 行代码库,采集一切测验谜底
    到了 2018 年 十一 月,Alistair 向他们的数学教师讲演了这一破绽,并让她向 HegartyMaths 发送邮件同步,后果 Hegarty 团队给予的回答是:“虽然咱们会考察他(Alistair)发现的任何问题,但咱们更但愿他专一于数学,而不是试图利用这个时机。”



    在收到这封邮件后,Alistair 坦言:“这个回应让咱们有点兴奋,由于他们当初知道咱们在捣鬼网站,但似乎有意修复咱们知道这个小破绽,所以咱们能够持续利用它。”
    胜利找到 HegartyMaths 的破绽后,Alistair 很快就将指标转向了另外一个名为 Educake 的线上学习平台,其次要用于生物、化学和物理教学。
    Hegarty 和 Educake 之间有一个独特机制,即一旦答错了问题,零碎会当即给出正确谜底。利用这一特征,Alistair 和 Scott 编写了一个 node/mongo 运用和 Tampermonkey 脚原本检测用户什么时候在测验页面上,并用随机数回答每个问题,而后将正确谜底存储在 mongo 数据库中。
    其中,Alistair 透露 TamperMonkey 脚本大略相似于以下代码:
    “正如你所看到的,它其实是每个问题的循环,保留了咱们失掉的正确谜底并持续推动。”在采集到正确谜底后,Alistair 他们还添加了一些从数据库获得的功用以及对多项选择的反对,最初将其整个绑缚到一个简略的 Handlemonkey 脚本中,并上传至 Snapchat(一款反对“阅后即焚”的即时社交软件)供他人使用。
    Alistair 骄傲表现:“终究后果?一个大约 200 行代码库,采集了线上学习网站上的一切问题和谜底,每次测验都能反复获取 100% 的精确率,还有一个 15mb 的 mongo 数据库。”
    这初步的胜利给了 Alistair 很大能源,因此他又找到了一名名为 Jake 的网友,并和他一同抓取了 Hegarty 的全部数据库:“咱们有了一个能够与 Hegarty 公司自身价值至关的 JSON 文件,由于全部产品实际上就是咱们复制的数据库。”
    在这些根底上,Alistair 他们制造了一个 Chrome 扩展顺序 Mochip。整体而言,Mochip 聚拢了他们抓取的 Hegarty 和 Educake 数据库,托管在 Heroku 收费层和 MongoDB Atlas 收费层上,用户能够登录,输出问题并获得 Mochip 对该问题的谜底列表。
    三、终究大翻车,被 Hegarty CEO 发现
    不想写功课的先生何其多,因此 Mochip 的用户群在短期内便迅速扩张,乃至终究还有了一个 Discord 办事器——所有看起来都很顺利,直至 Hegarty 的 CEO Colin Hegarty 上网搜到了 Scott 公布的一则对于 Mochip 的 Reddit 帖子。
    在尝试 Mochip 并发现它的确能用后,Colin Hegarty 大感震惊,但却并未因此嬉笑或起诉,而是发了一封邮件给 Alistair 想约时间聊聊:
    “我对你做这件事的技巧和才能印象粗浅,我想你和你的敌人们一定十分聪明。我最后成立 HegartyMaths,是试图帮忙孩子们在糊口中学习和提高……我但愿无机会和你谈谈你开发的运用。咱们能不克不及在周末前约个时间聊一聊?有时分遇到这样的状况,有的公司可能会采用法律伎俩来处置,但我更违心和你聊天,以敌对的形式解决这个问题。”收到这封邮件后,Alistair 婉言“很懊丧,但也有点知足”——在某种水平下去说,胜利吸引 Colin Hegarty 自己的留意也算是一件蛮厉害的事。在之后商定的线上聊天中,Alistair 和 Scott 前后与 Colin Hegarty 和 Educake 团队分别都进行了对话,并被动给出了避免再次泛起这类状况的残缺解决办法:首先,使用 Redis 完成一个简略的速率限度,这将使自动化测试变得十分难题;其次,打乱数据库中的 ID,尽量使克隆的数据库有效。
    待所有尘埃落定后,Alistair 检查道:“我特别想感激传奇人物 Colin Hegarty 在与我分割时的善意和体恤。假如不是这样,事件的后果对我来讲可能会更重大。HegartyMaths 是一个杰出的学习资源,归根结柢,它是为了帮忙先生学习而不是带来未便。”
    Alistair 将这起事情总体复盘后,其文章在 HN 上惹起了热议。部份网友称誉 Colin Hegarty 友善的处置形式,有网友以为“这类阅历可能比 Alistair 躲过的网课功课更有价值”,也有网友说:“大部份先生可能真的需求这些功课来稳固学习,而这类运用会减弱他们在这方面的才能。”
    关于这件事,你的看法又是甚么呢?

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题42

    帖子52

    积分244

    图文推荐