一、脚本层:Envir目录下的隐形后门
服务端MirServer\Mir200\Envir是漏洞重灾区,需逐行审查关键脚本。
•UserCmds.txt(自定义命令):检查是否存在未公开的GM指令。例如脚本行会员=@GM,玩家输入@会员即可瞬间获得管理员权限。必须删除所有非必要的默认命令及测试代码。
•QFunction-0.txt(功能触发):重点排查[@Login]登陆触发段。警惕无条件的属性赠送(如GAMEGOLD+5000)或调用GMEXECUTE的命令,这些常被用作隐蔽后门。
•QManage.txt(登陆检测):审查是否有自动加元宝、刷装备的循环脚本。特别注意#CALL引入的外部脚本,需追踪检查被调用文件。
•MapInfo.txt(地图配置):确认地图坐标无负数或超大值(如-100-100),此类坐标易导致玩家卡死或触发地图穿越BUG。
二、权限层:M2Server引擎控制台
权限配置不当是导致“刷装备”的直接原因,需在M2控制台内严格锁定。
-管理员列表清洗:路径M2Server→查看→列表信息→管理员列表。必须删除默认的测试账号(如test、admin)及未知账号,仅保留当前GM账号,权限等级设为10。
•管理命令权限:路径M2Server→选项→游戏命令→管理命令。逐一检查@make(刷物)、@adjust(调级)等命令的“所需权限”,必须设置为10(最高级)。若设为0,普通玩家即可使用,后果严重。
•行会权限漏洞:检查@GuildRecall(行会召唤)等命令权限。若权限设置过低,玩家可利用行会功能实现全图瞬移或卡位。
三、数据库层:Item.DB与怪物表的数值陷阱
用DBC2000打开MirServer\Mud2\DB下的数据库文件,排查数值溢出。
-装备属性溢出:在Item.DB中,检查是否存在攻击力999、持久100等超规格测试装备。此类装备若被玩家通过漏洞刷出,将直接破坏平衡。
-怪物爆率与刷新:检查Monster.DB中BOSS的刷新时间(如设为1分钟)及爆率字段。过高的刷新频率会导致资源无限产出。同时排查MonGen.txt刷新文件,防止怪物刷新坐标超出地图边界导致卡怪。
四、实战压力测试:触发逻辑漏洞
通过极限操作测试系统的边界承载能力,发现隐藏BUG。
-负重与数量溢出:购买或刷出大量低级药品(如金疮药),填满背包并测试交易、存仓。观察金币数量是否异常翻倍,或出现“负重量”BUG,这是复制漏洞的常见诱因。
-NPC对话轰炸:对关键NPC(如元宝充值、装备回收)进行高频连续点击。若脚本未做防刷检测,可能触发多次发放奖励或重复扣除材料的逻辑错误。
-地图穿墙与坐标测试:使用@move或随机传送卷轴测试地图边缘坐标。若角色能移动到未开放区域(如地图外或GM专属房间),说明地图封锁块(OBJ)设置存在漏洞。
五、工具辅助:脚本查看器与日志分析
人工审查易遗漏,需借助工具进行深度扫描。
-脚本查看器:使用专业工具(如LegScriptViewer)扫描Envir目录。重点筛查无条件的GIVE命令、未闭合的循环语句以及敏感函数调用,工具会自动标记高危行。
-日志审计:开启M2的详细日志功能。在测试过程中,监控Log文件夹下的数据变动记录。若发现非GM账号执行了MAKE命令,即可定位漏洞触发点。
总结:查找漏洞需遵循“先静态(查脚本/配置)→再动态(压力测试)→后工具(自动化扫描)”的流程。重点防范UserCmds.txt中的后门指令与M2权限配置,这是绝大多数“刷装备”事件的根源。
服务端MirServer\Mir200\Envir是漏洞重灾区,需逐行审查关键脚本。
•UserCmds.txt(自定义命令):检查是否存在未公开的GM指令。例如脚本行会员=@GM,玩家输入@会员即可瞬间获得管理员权限。必须删除所有非必要的默认命令及测试代码。
•QFunction-0.txt(功能触发):重点排查[@Login]登陆触发段。警惕无条件的属性赠送(如GAMEGOLD+5000)或调用GMEXECUTE的命令,这些常被用作隐蔽后门。
•QManage.txt(登陆检测):审查是否有自动加元宝、刷装备的循环脚本。特别注意#CALL引入的外部脚本,需追踪检查被调用文件。
•MapInfo.txt(地图配置):确认地图坐标无负数或超大值(如-100-100),此类坐标易导致玩家卡死或触发地图穿越BUG。
二、权限层:M2Server引擎控制台
权限配置不当是导致“刷装备”的直接原因,需在M2控制台内严格锁定。
-管理员列表清洗:路径M2Server→查看→列表信息→管理员列表。必须删除默认的测试账号(如test、admin)及未知账号,仅保留当前GM账号,权限等级设为10。
•管理命令权限:路径M2Server→选项→游戏命令→管理命令。逐一检查@make(刷物)、@adjust(调级)等命令的“所需权限”,必须设置为10(最高级)。若设为0,普通玩家即可使用,后果严重。
•行会权限漏洞:检查@GuildRecall(行会召唤)等命令权限。若权限设置过低,玩家可利用行会功能实现全图瞬移或卡位。
三、数据库层:Item.DB与怪物表的数值陷阱
用DBC2000打开MirServer\Mud2\DB下的数据库文件,排查数值溢出。
-装备属性溢出:在Item.DB中,检查是否存在攻击力999、持久100等超规格测试装备。此类装备若被玩家通过漏洞刷出,将直接破坏平衡。
-怪物爆率与刷新:检查Monster.DB中BOSS的刷新时间(如设为1分钟)及爆率字段。过高的刷新频率会导致资源无限产出。同时排查MonGen.txt刷新文件,防止怪物刷新坐标超出地图边界导致卡怪。
四、实战压力测试:触发逻辑漏洞
通过极限操作测试系统的边界承载能力,发现隐藏BUG。
-负重与数量溢出:购买或刷出大量低级药品(如金疮药),填满背包并测试交易、存仓。观察金币数量是否异常翻倍,或出现“负重量”BUG,这是复制漏洞的常见诱因。
-NPC对话轰炸:对关键NPC(如元宝充值、装备回收)进行高频连续点击。若脚本未做防刷检测,可能触发多次发放奖励或重复扣除材料的逻辑错误。
-地图穿墙与坐标测试:使用@move或随机传送卷轴测试地图边缘坐标。若角色能移动到未开放区域(如地图外或GM专属房间),说明地图封锁块(OBJ)设置存在漏洞。
五、工具辅助:脚本查看器与日志分析
人工审查易遗漏,需借助工具进行深度扫描。
-脚本查看器:使用专业工具(如LegScriptViewer)扫描Envir目录。重点筛查无条件的GIVE命令、未闭合的循环语句以及敏感函数调用,工具会自动标记高危行。
-日志审计:开启M2的详细日志功能。在测试过程中,监控Log文件夹下的数据变动记录。若发现非GM账号执行了MAKE命令,即可定位漏洞触发点。
总结:查找漏洞需遵循“先静态(查脚本/配置)→再动态(压力测试)→后工具(自动化扫描)”的流程。重点防范UserCmds.txt中的后门指令与M2权限配置,这是绝大多数“刷装备”事件的根源。

