我在情报学奥林匹克运动会上,用bug直接更改了验算数据如果你考满分,你会作弊吗?-量子比特
在线考试,一道题太难了做不出来。怎么办才好呢?写多少也可以空着吗?
在NOIP2020(奥运会)上,浙江省的同学开辟了“另一条道路”,最终获得了满分。
简而言之,他直接指定验算数据,由“改卷老师”根据该数据来判断答案。
什么,这样的操作也可以吗?是不可思议的感觉吗?
这是在NOIP2020中发现的错误。什么意思?是什么引起了bug?
直接更改了验算数据
直接看一下选手提交的代码:
图源:洛谷
是的,这样直接打开输入文件,覆盖管理数据;打开输出文件并写入回答。
相当于解数学题。考生解题的过程只有在特定的数据下才是正确的,而考生在改写老师的试卷时,直接让老师按照这个数据修改。
你发现了中心问题吗?没错,改卷老师的数据可以修改了。是臭虫。
在了解错误之前,请比较和理解两者的卷更改过程。
在NOIP2020中,验算数据是内置的ball.in文件,答题卡是考生提交的程序,改卷老师是系统的checker。
常规评估流程:
评估系统给出输入ball.in文件;运行运动员程序,获取ball.out文件;检查checker中与ball.in相对应的ball.out文件的回答是否满足要求。
钻空子后的评估过程:
评估系统给出输入ball.in文件;执行运动员程序,运动员更改ball.in文件,同时写入ball.out文件;检查checker中相应的ball.out文件(已修改)的回答是否满足要求。
这个错误中最奇怪的地方是,本来应该只有只读权限的ball.in文件,可以简单地修改。
这个低水平的问题,到底在哪里,还不清楚,不过根据网友的推测,应该落后于老的评测软件Arbiter的锅。
由于Arbiter问题和错误太多,修改ball.in文件只是其中之一。
知乎在网友Menci的回答中,通过Arbiter,选手实际直接解限内存(增加计算力)增加限制时间)增加解答时间。
正因为Arbiter的技术太落后,有各种各样的错误,验算数据的修正才成为可能。
此外,网友讨论还发现文件读取命令也存在一些问题。
如果改卷老师先看一次输入数据,之后数据被替换也不会发生错误判定。
但是,系统程序的加载顺序是先执行选手的文件,留下了可以乘坐的机会。
当然,这台可乘坐的机器也有使用限制,但这与Special judge独特的判定机制有关。
Special Judge读取选手提交的特定程序,根据验算数据判断选手提交的程序的输出(ball.out文件)是否正确。
在常规主题中,只需检查答案即可,无需读取程序。
如果直接匹配,则不会有篡改验算数据的机会。
今年,NOIP比赛中首次出现了Special Judge的主题。
这样,在各种阴差阳错中,NOIP2020中最难的问题就是这样把满分答案“改了”。(狗的头)
要取消成绩吗?禁赛3年?
这个同学的这次行为,等于是踩到了竞赛本身和竞赛规则的灰色地带。
我还不知道怎么处理。我们只能从规定和往年的一些案例中窥视一二。
往年,CCF本身对违规行为有规定和处罚。在个人违规案例中,可以分为三个层次:
不符合程序的成绩无效运动员禁赛3年;所在省将在下赛季扣除一名名额,优先扣除有作弊运动员的学校名额。
在过去的案例中,如果只有选手在过程中被判断为不符合程序,那么其成绩的一部分就会被取消,这通常没有被直接认定为不正当。
如果被认定为作弊,将同时进行3年的禁赛和名额扣除。
可以看出,作弊和非作弊之间处罚力度的差距很大。
因此,该同学面对处罚最重要的一点是其行为与作弊之间的认定。
那么,CCF往年是如何认定考试作弊的呢?从往年的发表中可以看出以下内容。
另外,在作弊通知中,CCF特别强调:
按照往年的说法,“等行为”和“诚信”似乎足以定性这一行为。
但也有网友认为,CCF软件有问题,合理利用规则,没有违反规则。
最终会怎么样,只有在处理结果出来之后才知道。
网友讨论:快去CTF吧
NOIP2020被附在考生身上,此事一经公布,就引起了网友的关注和讨论。
知乎中,相关提问获得89W的阅览数,在当天的知乎热门图表中登场。
对于这样的黑客行为,为什么不让人想到CTF(网络安全技术争夺战)呢?
所以,网友们高喊“快去CTF”也就不足为奇了
还有网友调侃,CTFer又多了一个领奖的地方。
所以,这个同学不考虑一下网络安全技术的夺旗比赛吗?(狗的头)
参考链接:https://www.luogu.com.cn/discuss/show/284885page=6https://www.zhihu.com/question/43907534