传奇单机微变轻变版本漏洞查找方法

来源: 作者: 点击:
针对传奇单机微变、轻变版本,查找漏洞需从服务端脚本与游戏实测双向入手。此类版本因修改装备属性、新增功能(如宠物、转生),易出现权限失控、数值溢出及后门命令。

一、 服务端脚本代码审计(核心)

拿到版本后,优先检查服务端 MirServer\Mir200\Envir 目录下的关键文件。

1. 权限与GM后门排查
◦ 检查点:打开 AdminList.txt,删除所有非自建的管理员账号名称,防止预留后门。

* 命令扫描:使用文本工具全盘搜索 CHANGEPERMISSION(提升权限)、CHANGEMODE(设置无敌/隐身)、GMEXECUTE(执行GM命令)。若这些命令出现在普通NPC脚本且无权限校验(如#IF检测等级或变量),即为高危漏洞。
* 默认权限:在M2Server的“选项→游戏命令→管理命令”中,确认所有管理命令的“所需权限”不为0,避免普通玩家误用。

2. 经济系统漏洞(刷元宝/装备)
◦ 关键词搜索:全盘搜索 GAMEGOLD +(增加元宝)、GAMEPOINT +(增加金币)、GIVE(给物品)。

* 隐蔽漏洞:重点检查回收脚本、每日签到、泡点脚本。常见漏洞形式为:回收一件低级装备给予巨额元宝,或NPC对话无次数限制重复领奖。
* 物品触发漏洞:检查 QFunction-0.txt 中的 [@StdModeFuncX] 脚本(X为物品Anicount编号)。若两个不同物品共用同一触发编号,可能导致双击普通物品刷出顶级装备。

3. 功能逻辑漏洞
◦ 地图传送:检查地图传送NPC是否可传入未开放或GM专用地图(如地图编号为0或999)。

* 行会与公告:检查行会招募NPC,防止通过公告写入特殊代码触发刷物。

二、 游戏内实测压力测试

在单机架设后,创建普通账号进行极限操作测试。

1. 数值边界测试
◦ 负数交易:在交易栏、商店购买或出售时,尝试输入负数(如 -999999)。若系统扣减负数等同于增加正数,存在刷钱漏洞。

* 数量溢出:尝试叠加物品至超过数据库上限(如32767),观察是否回档或归零。

2. 交互与并发测试
◦ 重复触发:对同一个NPC连续快速点击对话,或同时开启多个窗口领取任务奖励,检查是否可重复获取。

* 状态异常:测试加速外挂或频繁切换地图,检查是否卡出无敌状态或穿墙进入禁地。

3. 路径与权限提升
◦ 尝试使用 @ 命令(如 @无敌、@刷装备),即便无GM权限也需测试,部分版本在 UserCmds.txt 中隐藏了公共后门命令。

三、 微变版本特有风险点

• 新增功能隐患:微变版本常新增“转生系统”、“宠物系统”。需检查转生脚本是否因等级判定错误导致可无限转生;宠物召唤脚本是否存在数量上限漏洞。

* 装备属性溢出:轻变版本装备属性(如攻击+65535)若未做上限校验,穿戴后可能导致角色属性异常或服务器崩溃。

四、 辅助工具与修复建议

• 工具使用:可使用“传奇脚本查看器”批量检查脚本逻辑;利用WPE抓包测试封包篡改(单机环境下慎用,易导致宕机)。

* 修复原则:所有NPC脚本在给予奖励前必须添加严格的变量检测(如 #IF CHECK [领取标记] 0),执行后立即标记(SET [领取标记] 1)。删除所有来历不明的GM名单及可疑命令。

建议在测试服完成全部漏洞排查后再导入正式单机存档,避免因漏洞破坏游戏体验。