Minecraft exploit fix — Trident Dupe 三叉戟複製修復
漏洞發現
該漏洞是 Minecraft 本身的漏洞,在1.13~1.21.4 (截止至2025/2/20) 皆有效
2/18偶然在YouTube上看到2B2T三叉戟複製影片,查詢了一下在此影片找到漏洞復現模組
漏洞原理
我使用Skript偵測Event並了解複製原理
on shoot:
send "shoot!" to shooter
on drop:
send "drop!" to player
在複製過程中,我發現三叉戟射出去之後伴隨著一個將三叉戟Q出去的動作
也就意味著三叉戟在射出去的那剎那留在背包裡面,而且是在射出去之後才消失
因此如果我們在三叉戟射出之後快速將三叉戟丟棄,那就會得到一個插在地上的三叉戟以及丟棄的三叉戟
完成複製
漏洞修復
為了驗證並修復此問題,我寫了以下Skript腳本刪除任何在射出三叉戟後1 tick內丟棄的物品
on shoot:
if projectile is trident:
set {anticheat::trident::%shooter's uuid%} to true #將玩家設置標籤,表示剛射出三叉戟
wait 1 tick #等待三叉戟從背包消失
delete {anticheat::trident::%shooter's uuid%}
on drop:
if {anticheat::trident::%player's uuid%} is true:
set item of event-dropped item to a air #若在等待期間試圖丟棄三叉戟,將刪除掉落物
經過測試成功修復漏洞,且不影響正常玩家