魔兽中的“命令行”骗术:这条代码能让你倾家荡产
大部分《魔兽世界》骗术属于“社会工程学”范畴:伪造游戏 ID、运用人际交往技巧,取得受骗者的信任。但还有一种更厉害的骗术,运用了游戏内聊天系统里的“命令行”功能,像极了黑客攻击。
无论是“金团”黑金 黑装备,还是点卡金币/人民币交易,几乎每个《魔兽世界》玩家都被至少一种骗术羞辱过智商。受骗之后还能怎么办?除了拍脑门别再想着图方便、捡便宜,似乎也没有什么别的办法——至少在国服,客服对受害者一般帮不上什么忙。
大部分《魔兽世界》骗术属于“社会工程学”范畴:伪造游戏 ID、运用人际交往技巧,取得受骗者的信任。但还有一种更厉害的骗术,运用了游戏内聊天系统里的“命令行”功能,像极了黑客攻击。代码如下:
/run RemoveExtraSpaces=RunScript
《魔兽世界》玩家早就吃过命令行的亏,很多人都听说过骗公会会长退会和移交会长(/gquit, /gleader)的伎俩。但上面这一条命令的毁灭性更强,如果在你的游戏里输入,基本等于把整个游戏的控制权交给了骗子。
这条命令有什么用?
这是一条脚本命令,《魔兽世界》客户端界面脚本语言是 Lua(基于 C)。我们玩游戏的界面,比如动作条、角色的姓名版(血条)、施法条、伤害文字等等,无论是暴雪自带还是第三方界面或者功能插件,都是用 Lua 脚本语言写的。
画面中所有非 3D 的都是界面
/run:让 /run 后面的字段按照 Lua 脚本运行; RemoveExtraSpaces和 RunScript:都是游戏自带的合法函数,分别能把文字中无用的空格去掉,和让一段文字被识别为Lua 代码
上面这条代码的功能是,每当前者运行时,都用后者代替前者。后者在《魔兽世界》玩家每次收到聊天信息的时候都会运行,这条代码的结果就是,玩家收到的聊天信息将被当做Lua 命令执行。
骗子会假装这段代码是某个绝版坐骑的兑换码,而坐骑对玩家的诱惑力是很大的。但其实,这段代码正是骗子“界面劫持”计划的第一步和最重要的一步。
界面劫持
这段代码有一个副作用:
受骗玩家的聊天系统不管用了
别人发来的信息他看不见,因为信息都变成了 Lua 命令,而 Lua 命令运行除了报错以外没有任何提示的。如果玩家起了疑心、重启游戏的话,之前的努力就白费了。因此骗子需要远程重新启动玩家的聊天功能——当然是通过聊天的方式。因为,现在玩家的客户端已经变成“肉鸡”,骗子发什么命令,肉鸡就会执行什么命令。
骗子会发送这段命令给玩家,重启玩家的聊天功能
这样,玩家仍然可以正常在各个公共或私密频道聊天,但骗子会利用另一个功能“插件通信接口”(CHAT_MSG_ADDON),来向玩家的客户端继续注入代码。