捋一捋这件事情吧。最初发现vianne sweeper的这个漏洞是在2023.3.26。3.30,我把现象报告给了校长,校长一眼就看出了问题所在,并且非常重视。
同一天,我把漏洞报告给了国际网,国际网并没有直接回复我的邮件,而是通过濮帝要求我解释我是如何做到的。我没有回答这个问题,因为有问题的是软件,而不是我。
这一段时间里,知道这一漏洞的,只有区区几人,没有人因此获利。
一个月后的4.23,沉寂已久的考拉突然发布了vsweeper的新版本,版本号是4.0.0b2。在这个版本中,漏洞依然没有被解决。
一天后的4.24,雷网首先动作,直接封禁了rmv格式的录像。直到这时,考拉才知道了这个漏洞的存在。起初他非常慌张,但随后冷静下来,很快自己想出了问题原因及解决方法。
所以这个漏洞是什么呢?答案是,在埋雷结束,软件要计算3bv是否合法,但在游戏开始后,vsweeper仍然把3bv的数值留在了栈内存中。
那这是一个漏洞吗,有人不禁要问。为什么不是去责怪这种主动的“破解”行为?这里面的区别是,恶意破解是想办法绕过软件的防御,而检查漏洞是检查软件是否设置了起码的防御,前者通常会利用漏洞来获利,而后者则会主动报告。而且这个漏洞的严重程度极高、而攻击成本却之极低。常见的作弊方法中,诸如变速、读(局面)内存,都有发现的方法,而读3bv却完全检查不出来。常见的作弊方法有些需要写代码,而读3bv数值操作上非常简单,一到三分钟即可。
幸好这个漏洞原理简单,修复起来也简单。就在四天后的28号,考拉发布了4.0.0b3,这才修复了这个问题。
这件事给开发者们留下的教训是,不仅要防读局面内存,也要防读3bv。之前不是没有人想到的,arbiter就不存在这个漏洞。
|
|