传奇服务端

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

霸图(精修)合集相思熊精修版本20顶赞玩家群不花一分钱玩家群
帝王
gxxM2
gxxm2
1sf
包服
服务器
查看: 15233|回复: 6

关于封包。如何防止服务器被刷封包刷东西

[复制链接]

190

主题

70

回帖

4613

积分

郡王

Rank: 8Rank: 8

元宝
1404
鸿盾币
1
金币
8514
发表于 2017-9-15 13:37:36 | 显示全部楼层 |阅读模式
便于大家理解,不往深处讲。先来讲讲封包的工作原理
一般所说的封包就是通过WPE软件,截取游戏中的一段动作、一段记录做成封包。然后向服务器发送这段封包,实现动作、记录的重复。

封包不是神,他只是通过发送数据完成游戏对应的操作,你的服务端如果有严格的条件限制或者服务器本身并不存在的操作,封包也实现不了。
说白了,被刷封包其实就是你的服务器脚本不严谨或者本身就存在有漏洞。

举几个例子:
1.人物角色在游戏中的 走、跑、砍这些动作都能截取为封包、把这些封包截取到然后向服务器发送,即可实现不需要鼠标操作,自动完成走、跑砍得动作。(玩家的走、跑、砍动作可以通过封包实现,因为游戏没有对此限制)

2.那么,我们是不是可以截取烈火剑法释放的封包,然后发送实现刀刀烈火的效果呢?答案是不行的。为什么呢。因为现在一般服务器都有限制技能释放冷却时间,也就是现在限制了刀刀烈火的触发,*但早在以前的版本不完善的时候,刀刀烈火是可以实现的。(目前玩家的烈火封包刀刀烈火无法实现,因为游戏对技能冷却时间进行了限制)

3.那么,我们是不是可以截取双击元宝蛋的封包,然后发送双击元宝蛋这个动作的封包实现无限加元宝呢?答案 一般情况下是不行的,因为物品双击触发效果的的功能脚本是在QFounction-0.txt 里 [@StdModeFuncXX] 字段实现的 ,就QFounction-0.txt 本身来说这个StdModeFunc就是脚本语言限制,该原理为 收取XX对应的物品,触发+元宝的操作,如果我们的包裹里没有XX这个物品,那么+元宝的操作就实现不了(截取双击元宝蛋的封包实现无限+元宝无法实现。因为游戏对条件进行了限制,收取XX这个物品才给+元宝,你没有XX这个物品的话就实现不了+元宝)但不排除一种特殊情况,双击触发用的是StdModeFunc,但是他CALL出去了:
  1. [@StdModeFunc11]
  2. #IF
  3. #ACT
  4. CALL [\\爆率系统\基础爆率.txt] @1000元宝
  5. Break
  6. [@1000元宝]
  7. #IF
  8. #ACT
  9. GAMEGOLD + 1000
  10. Break
复制代码


这是一个漏洞脚本,看到没有,这里他CALL出去了,那么通过封包的截取,我们可以跳过[@StdModeFunc11],直接执行[@1000元宝]底下内容意义:假设11代表的是“1000元宝蛋”,因为他CALL出去了,通过封包可以跳过“StdModeFunc11”的检测,直接执行[@1000元宝]底下内容:给1000元宝。即:我们没有“1000元宝蛋”这个物品,但是我们可以无限+元宝。

总结以上几点,那么本文关键来了,如何防止被刷封包?答案就是加以严格的条件检测限制。

漏洞是如何产生的
下面以几个脚本简单举例介绍

  1. [@main]
  2. 庆新区!开放冲级奖励!!!!!! \ \
  3. <领取25级奖励/@领取奖励25>
  4. [@领取奖励25]
  5. #IF
  6. CHECKLEVELEX = 25
  7. #ACT
  8. give 千里传音 1
  9. give 魔血石 1
  10. give 双倍宝典 1
  11. give 100元宝 1
  12. break
复制代码
  1. <div>这个是一段有漏洞的升级奖励触发脚本,该脚本的意思为:检测玩家等级=25级,那么奖励他千里传音魔血石等等一些装备</div>
复制代码
漏洞就是:如果玩家在25级的时候,不断点领取奖励就会不断获得奖励
有人肯定会骂我,这个漏洞明显太愚蠢,这个不需要封包,直接点NPC就无限领取了吧。
是的,现在肯定没有这样的猪脚本了,但是封包的原理很简单,钻的就是这种检测不严谨的空子。
我们举个例子:小白GM想新建一个NPC快速加血脚本,于是上百度搜了,得到了一个脚本:
162215r87tv37rttt8ltk6.png
我们来看下这个脚本
  1. [@main]
  2. 神医:“最近玛法大陆动荡不平,每天进进出出这里的伤者日益\
  3. 增多尤其我身前这片土地,土壤早已被鲜血染成红色……”\ \
  4. <这位勇士,您需要治疗吗?>\
  5. <瞬间恢复人物HP/MP最大值>\ \
  6. <1.花费5000元宝接受治疗/@治疗>\
  7. <2.结束对话/@exit>
  8. [@治疗]
  9. #IF
  10. CHECKGAMEGOLD > 4999
  11. #act
  12. GAMEGOLD - 5000
  13. HumanHP + 50000
  14. HumanMP + 50000
  15. SENDMSG 0 [%s]体内热血沸腾,在【神医华佗】的治疗下HP,MP瞬间得到了恢复
  16. SENDMSG 0 [%s]体内热血沸腾,在【神医华佗】的治疗下HP,MP瞬间得到了恢复
复制代码
很明显,这个脚本是有不严谨的,会被封包抓取漏洞。这个脚本检测的是元宝大于4999,然后扣取玩家5000元宝,给玩家加满血加满蓝。
用封包工具抓取这个NPC 的加血封包,只要你有足够的元宝,即可实现安全区外无限加血,拿沙的时候发送封包即可不掉血,不死。

如何完善这个脚本? 在#IF的底下加一个 InSafeZone 检测条件,检测是否为安全区,是,加血。反之则不加血。

通过以上脚本,大家可能明白了,封包的出现仅仅是游戏脚本检测不够严谨或者本身存在有重大漏洞,才得以被玩家利用。所以,认真学习脚本,修补不严谨检测是解决封包问题的关键!

评分

参与人数 1金币 +99 收起 理由
admin + 99 很给力!论坛是我家,分享靠大家!.

查看全部评分

0

主题

25

回帖

92

积分

什长

Rank: 2

元宝
0
鸿盾币
0
金币
1130
发表于 2017-9-16 18:22:31 | 显示全部楼层
回复

使用道具 举报

0

主题

1136

回帖

1262

积分

知府

Rank: 6Rank: 6

元宝
0
鸿盾币
0
金币
2365
发表于 2018-9-19 12:54:44 | 显示全部楼层
回复

使用道具 举报

0

主题

6

回帖

6

积分

百姓

Rank: 1

元宝
0
鸿盾币
0
金币
6
发表于 2023-6-10 14:57:37 | 显示全部楼层

这是做什么用的?
回复

使用道具 举报

0

主题

30

回帖

30

积分

百姓

Rank: 1

元宝
0
鸿盾币
0
金币
13
发表于 2023-10-15 00:24:49 | 显示全部楼层
凭你手打了这么多字!  我就觉得你辛苦了!不管楼主这个工具是否好用!
就凭你手打了这么多字!  我就觉得你辛苦了!不管楼主这个工具是否好用!
就凭你手打了这么多字!  我就觉得你辛苦了
回复

使用道具 举报

0

主题

72

回帖

72

积分

什长

Rank: 2

元宝
0
鸿盾币
0
金币
184
发表于 2024-3-22 23:14:45 | 显示全部楼层

凭你手打了这么多字!  我就觉得你辛苦了!不管楼主这个工具是否好用!
就凭你手打了这么多字!  我就觉得你辛苦了!不管楼主这个工具是否好用!
就凭你手打了这么多字!  我就觉得你辛苦了
回复

使用道具 举报

0

主题

22

回帖

22

积分

百姓

Rank: 1

元宝
0
鸿盾币
0
金币
190
发表于 2024-3-24 09:38:24 | 显示全部楼层
好好学习天天向上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|传奇服务端 |Sitemap

GMT+8, 2024-4-27 21:09 , Processed in 0.028809 second(s), 14 queries , Redis On.

Powered by 108pc X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表