RNG 漏洞
RNG 是 随机数生成器 的简写。
本质上只是个计算器,用来计算 Minecraft 中的随机事件。
- 原理?
计算机产生随机数不是真正的随机,而是根据已有的数据,通过复杂的公式产生一个 “伪随机数” 。
那么,如果你知道这个公式,并且知道要使用什么数据,操纵进入公式的数据,就可以使随机数变成自己想要的结果。
利用此漏洞的客户端 mod:
能干啥?
指定附魔
玩家可以百分百附出满级附魔。
耐久无损耗
耐久附魔不是增加物品的耐久,而是有概率不消耗耐久。
钓鱼出指定宝藏
同理,玩家可以想钓出什么,就能钓出什么。
如何防御 RNG 漏洞
Paper 核心(包括它们的分支),可以防止玩家破解 RNG 。
其中, Purpur 和 Leaves (包括它们的分支)可以自行选择使用的 RNG 算法。
对于 Purpur 和 Leaves 用户,你可以根据自己的核心类型按照下文修改配置 (默认就是开启的):
这是 Purpur 的配置方法:
purpur.yml
settings:
entity:
shared-random: true
这是 Leaves 的配置方法;
leaves.yml
use-vanilla-random: false
提示
如果你使用 Paper 核心但想用回原版的 RNG 算法,请参考 Paper#7166 中提到的解决方法。
如果你使用 Gale、Leaf 等核心,你甚至无需为此担心,因为他们的 RNG 算法已经经过改良,不再是原版的 RNG 。