正文内容 评论(0

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻
2020-12-10 16:28:13  出处:量子位  作者:郑集杨 编辑:万南     评论(0)点击可以复制本篇文章的标题和链接

在线考试,一道题太难做不出来,怎么办,是多少写点还是直接放空?

在NOIP 2020(信息学奥赛)上,一位浙江同学,“另辟蹊径”,最终,还拿了满分。

简单来说,就是他在直接指定了验算数据,还要「改卷老师」就按着这个数据判卷。

什么,还可以这么操作?是不是感觉匪夷所思?

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

这,是NOIP2020被发现的Bug,是怎么回事?又是什么导致的Bug?

直接把验算数据改了

不妨直接来看看选手提交的代码:

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻
图源:洛谷

是的,就是这么直接,打开输入文件,覆盖验算数据;打开输出文件,写入答案。

相当于做数学题,考生的解题过程只有在特定数据下是正确的,但考生在改卷老师判卷的时候,直接让老师全部按着这组数据去改。

是不是发现了核心问题所在了?对,改卷老师的数据能被修改了,就是Bug所在。

在了解Bug之前,我们先来对比和了解一下二者改卷的流程。

在NOIP2020中,验算数据是内置的ball.in文件,答题卡是考生提交的程序,而改卷老师就是系统中的checker。

正常的评测流程:

评测系统给一个输入ball.in文件;

运行选手的程序,得到ball.out文件;

用checker去检查ball.in对应的ball.out文件的答案是不是满足要求。

钻空子后的评测流程:

评测系统给一个输入ball.in文件;

运行选手的程序,选手改了ball.in文件,同时写入ball.out文件;

用checker去检查ball.in(修改过的)对应的ball.out文件的答案是不是满足要求。

这个Bug中最诡异的地方,就是:原本应该只有只读权限的ball.in文件,竟然能够被轻易修改。

这个低级问题,出在哪里,还不知道,但是据网友推测:应该就是落后老旧的评测软件Arbiter的锅。

因为Arbiter的问题和Bug实在是太多了,修改ball.in文件只是其中之一。

知乎网友Menci的回答中,通过Arbiter,选手其实还能直接解限内存(增加计算力)和解限时间(增加答题时长)。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

正是由于Arbiter的技术太落后了,存在各种Bug,才让验算数据的修改成为了可能。

此外,网友的讨论,也能发现,在文件读取的指令中,也存在一些问题。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

如果改卷老师先把输入数据看一遍,那么就算后面数据被偷换了,也不会出现误判。

但是,系统程序的加载顺序偏偏是,先运行选手的文件,于是,才留下了可乘之机。

当然,这个可乘之机,也是有使用局限的,而这,跟Special judge的独特判定机制有关。

Special Judge,是读取选手提交的特定程序,通过验算数据来确定选手提交的程序输出(ball.out文件)是否正确。

而平常的题目,只需核对答案就行,就不需要读取程序。

直接核对,也就没有了篡改验算数据的机会。

而今年,却是NOIP竞赛首次出现Special Judge题目。

就这样,各种阴差阳错的情况下,NOIP2020中最难的一道题,就这么被「改」出了满分答案。(狗头)

取消成绩?禁赛三年?

这位同学此次的行为,算是踩到了竞赛本身和竞赛规则的一处灰色地带。

至于会怎么处理,还不得而知,我们只能从规定和往年的一些案例中窥探一二。

在往年中,CCF本身是对违规行为有着规定和处罚的。对于个人违规的判例上,可以分为三个层级:

不合程序的成绩作废;

选手禁赛三年;

扣除所在省选下季名额1个,优先扣除作弊选手所在学校的名额。

从过往案例来看,如果只是选手在过程中被认为不合乎程序,那么即该部分成绩取消,这种情况一般是没有直接认定为作弊。

而一旦认定为作弊,则是禁赛三年和扣除名额同时进行。

可以看出,认定为作弊和非作弊二者之间,处罚力度之间的差距还是很大。

因此,该同学面临处罚的最关键点,便是在于其行为与作弊之间的一个认定。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

那么,CCF往年是如何认定作弊的呢?从往年公告中,我们可以看到:

为获奖采取了抄袭、拷贝等不正当的手段。

另外,在作弊通告中,CCF特别强调:

本学会认为,诚信是对一个成长中的学生最起码的道德要求,也是参加竞赛的前提条件,CCF严厉谴责任何弄虚作假的行为。

按照往年来看,「等行为」与「诚信」,似乎足以给这个行为定性。

但是,也有网友认为:CCF软件出了问题,合理利用规则,没有违反规定。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

至于最终如何,只能等待处理结果出来才能知晓了。

网友讨论:快去打CTF

NOIP2020被考生钻了空子,这事一经发布,便引起啦网友的关注和讨论。

在知乎上,相关提问已经有了89W的浏览量,并冲上了当日的知乎热榜。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

对于这种黑客式的攻击行为,又怎能不让人想到CTF(网络安全技术夺旗赛)呢?

这也难怪网友们都惊呼:快去打CTF

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

另外,也有网友调侃道:CTFer又多了个拿奖的地方。

信息学奥赛上浙江同学用BUG拿了满分:算不算作弊网友吵翻

所以,这位同学要不要考虑一下网络安全技术夺旗赛呢?(狗头)

责任编辑:万南文章纠错

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...