烟消火灭网

去年帮朋友处理一个老私服,他服务器被刷了元宝,日志里翻出几行 Lua 脚本,明晃晃写着“if 元宝 < 1000000 then 元宝 = 元宝 + 999999”。我当时就笑了——这哪是漏洞,这是后

传奇查漏洞脚本代码

去年帮朋友处理一个老私服,传奇查漏他服务器被刷了元宝,洞脚日志里翻出几行 Lua 脚本,本代明晃晃写着“if 元宝 < 1000000 then 元宝 = 元宝 + 999999”。传奇查漏我当时就笑了——这哪是洞脚漏洞,这是本代后门。但传奇这游戏,传奇查漏二十多年了,洞脚真正靠脚本挖出来的本代漏洞,往往比这隐蔽得多。传奇查漏

最早那批漏洞出在封包校验上。洞脚客户端发个“购买物品”的本代包,服务端只认物品 ID,传奇查漏不核对数量字段。洞脚有人写了个 Python 脚本,本代把数量改成负数,买一瓶药水倒贴金币。这脚本核心就三行:

packet = b'\x01\x02\x00\x00\x00\x01' packet = packet[:6] + struct.pack('<i', -9999) + packet[10:] send(packet)

简单到可笑。但当年盛大官方服也中过招,因为服务端是用 Delphi 写的,整数溢出检测全靠程序员手动加,漏一个地方就完蛋。

后来私服圈流行用脚本扫地图。传奇的地图文件是明文,怪物刷新点写在 MonGen.txt 里。有人写了个循环,遍历所有地图坐标,把怪物刷新间隔改成 0,再把刷新数量改成 255。脚本跑一晚上,服务器内存直接爆掉。这不算漏洞,算配置疏忽。但脚本能自动化干这事,比手动改文件快几百倍。

真正让我印象深的,是一个刷装备的脚本。传奇物品数据库里有个 StdItems 表,每件装备有 Shape 字段,决定外观。有人发现,把 Shape 改成特定值,再配合 Looks 字段,客户端渲染时会读取错误的资源索引,结果把屠龙的外观套在木剑上。脚本逻辑是:

for item in all_items: if item.name == "木剑": item.shape = 0x1F item.looks = 0x3E8 update_db(item)

这漏洞不给你加属性,但能骗过其他玩家。交易时对方看到的是屠龙,点开属性还是木剑。有人靠这脚本骗了一整仓装备。后来引擎更新,加了外观校验,这招才失效。

脚本挖漏洞有个特点:它不创造漏洞,只是把人工测试的流程自动化。比如测试“交易时快速取消”会不会复制物品,手动点几百次可能触发一次,脚本一秒钟跑一千次。传奇早期有个著名的“交易复制”漏洞,就是靠脚本刷出来的——在交易确认的瞬间发送取消包,服务端状态机没锁住,物品同时留在双方背包。脚本大概长这样:

while True: start_trade() put_item(item) confirm_trade() send_cancel_packet() if check_duplicate(): break

这脚本跑起来,服务器 CPU 直接拉满。但能跑出一次成功,就够回本了。

现在官方服基本堵死了这些路。私服还在用老引擎的,漏洞一抓一大把。我见过最离谱的一个,登录脚本里写 if username == "GM" then is_admin = true,连密码都不验。这不算漏洞,算行为艺术。

写这类脚本,工具不重要。Python、按键精灵、甚至 Excel 宏都行。关键是理解服务端和客户端之间的信任边界。传奇的架构决定了客户端能发什么包,服务端就信什么。脚本只是把这个信任放大到极限。你不需要会逆向,只需要会发封包,再加点耐心。

有人问我现在还能不能挖到传奇漏洞。能。但别碰官服,那是刑法第 285 条。私服自己搭着玩,随便折腾。脚本代码网上到处都是,改个 IP 就能跑。只是大部分脚本跑出来的结果,不是“恭喜你发现漏洞”,而是“服务器已断开连接”。

访客,请您发表评论:

© 2026. sitemap