怀旧经典——魔力宝贝秒遇怪功能分析

13 篇文章 8 订阅
2 篇文章 0 订阅

《魔力宝贝》作为一款非常早的网络游戏,可谓是经久不衰。作为这样一款古老的2D回合制网游,早些年的一些开发理念也导致了游戏中的漏洞比较多。秒遇怪和不遇怪是回合制网游玩家梦寐以求的外挂功能,而这款游戏就可以实现。

所谓秒遇怪是只在无需移动或者短距离移动的情况下就可以频繁遇怪,这种功能很明显是通过主动发送协议完成的。

在老版本的游戏中有这样一个功能函数,使游戏在人物移动时被随机触发,如果我们主动去调用这个函数,就可以绕过随机代码,让概率事件变为必然事件。下面我们用游戏的单机版本来分析一下。

首先我们用xdbg附加游戏,在send下断走路

在包内容上下写入断点,再次下写入断点跳出线程

在函数头部下断发现,不同的动作返回是不同的, 说明我们可以在这里下条件断点过滤掉走路包,并观察下是否在遇怪是会断下

由于游戏是没有心跳包的,所以在游戏再次断下时说明我们遇怪了

多次执行到返回,找到一个比较容易分析的CALL进行测试,我们发现返回三层有一个CALL无需传入参数即可调用

用代码注入器调用这个CALL看下效果

注入之后进入战斗,说明这里就是遇怪CALL

我们可以直接调用这个CALL来进入战斗,同样也可以NOP掉这个CALL来实现不遇怪。

如果需要下载调试工具可以到公众号 任鸟飞逆向----资源下载中下载

============================================

以上是旧版魔力宝贝的遇怪机制,在客户端中会有一个遇怪函数通知服务器遇怪,

但是在新版的游戏里,这个功能被改到服务器随机触发了,在玩家走路时,服务器随机触发战斗,并通知客户端,

这样,我们就没办法直接通过本地的战斗CALL来进行战斗,

但是,我们还有别的办法,

既然战斗是走路随机触发的,那么我们可以频发的调用走路CALL或者发送走路封包,让服务器频繁的进行随机判断,

这样就会在短时间里触发战斗

新版的游戏数据变化不大,由于游戏是静态加密,走相同位置的发包是固定的

所以,我们直接通过调用send函数来验证一下这个想法

首先我们来到send处,下F2断点,移动以后游戏断下(如图)

执行到返回后,得到send函数的原型,并对参数进行分析(如图)

socket的来源直接是一个基地址[E10820],我们直接用代码注入器进行注入,先找一片空地址,将复制的封包拷贝进去(如图)

然后将send 函数填写到代码注入器中(如图)

然后频繁的点击注入,我们在没有移动的情况下就可以进入战斗,当然有时候需要点很多次(如图)

这样我们就达到了秒遇敌的效果,而步步遇敌是说我们可以通过对send进行hook,每当我们移动一步,会对移动包进行hook,并进行频繁的重发,这样就会达到每一步都进入战斗的效果,这种方法的好处时不需要对加密函数进行分析。而原地遇敌就需要对加密函数进行分析,发送向原地移动的封包,才能达到效果。

以上两个版本都能实现秒遇怪,不同点在于遇怪功能是否在服务器进行触发,这两种情况都是游戏早期漏洞导致的,想处理并不是很容易,但是服务器如果想对这两种情况进行检测也很简单,只要对频繁发送的封包进行一下时间戳的验证即可判断是否是玩家手动进入的战斗。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天龙八部怀旧单机版GM是游戏中的"游戏管理员",他们负责维护游戏的正常运营和秩序。GM具有特定的权限和责任,以确保每个玩家都能够享受到愉快和公平的游戏体验。 首先,GM负责监督游戏中的玩家行为,确保所有玩家都遵守游戏规则和道德准则。如果有玩家违反了规则,GM会采取相应的措施,比如警告、禁言或封禁账号,以维护游戏的良好秩序。 其次,GM还负责解答玩家的问题和解决他们遇到的问题。无论是游戏操作、系统BUG还是其他游戏相关的疑问,玩家都可以向GM寻求帮助。GM会尽快回复并尽力提供解决方案,以确保玩家的游戏体验顺利进行。 另外,GM还会组织一些活动和任务,以增加游戏的趣味性和互动性。他们会定期发布一些限时活动,如打怪、寻宝等,让玩家有机会获得额外的奖励和体验更多的游戏内容。同时,GM还会举办一些比赛和竞技活动,来展示玩家的实力和技巧。 最后,GM还会收集玩家的意见和建议,以改进游戏的内容和系统。他们会定期与玩家进行交流,了解玩家的需求和期望,并将这些反馈传达给游戏开发团队。通过与玩家的互动,GM希望能够不断改进和完善游戏,为玩家提供更好的游戏体验。 总而言之,天龙八部怀旧单机版GM在游戏中扮演着重要的角色。他们不仅维护游戏的秩序和规则,还协助玩家解决问题、组织活动并收集玩家的反馈。他们的工作使得游戏能够有序运营,并且为玩家提供良好的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值