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

news2024/11/27 19:55:18

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1266951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开源】基于Vue.js的大学计算机课程管理平台的设计和实现

项目编号: S 028 ,文末获取源码。 \color{red}{项目编号:S028,文末获取源码。} 项目编号:S028,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2…

Java工作中 经常用到的工具类Util(持续更新)

前言 Java本身自带了许多非常好用的工具类,但有时我们的业务千奇百怪,自带的工具类又无法满足业务需求,需要在这些工具类的基础上进行二次封装改造。以下就是作者在实际工作中,积累总结的一些Util。 一、时间相关 package com.te…

python——第十四天

hash加密模块: hashlib hamc 加密那些事: 不可逆加密--hash加密 数据校验 密码加密 特点: 单向性 明文-->密文,但是密文无法还原成明文 唯一性 只要明文一致,得到的密文也是一定的 可逆加密: 对…

教师如何备课,上好一堂课

作为一名教师,备课是上好一堂课的关键。备课不仅仅是准备教材和教具,更是制定教学计划、设计教学方法、预测学生学习效果的重要环节。接下来我分享几点备课和上课的心得。 深入理解教学大纲 教学大纲是备课的指导性文件,只有深入理解教学大纲…

一文了解什么是Canvas

HTML5 Canvas是一个多功能元素,可以在网页上渲染图形、动画和图像。它提供了一个空白画布,开发人员可以在其中使用JavaScript绘制和操作像素、形状和文本。凭借其广泛的功能,HTML5 Canvas已成为创造视觉震撼和交互式网络体验的热门选择。 一、…

Matplotlib饼图的创建_Python数据分析与可视化

Matplotlib饼图的创建 饼图绘制饼图嵌套饼图 饼图 饼图又称圆饼图、圆形图等,它是利用圆形及圆内扇形面积来表示数值大小的图形。是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。饼图主要用于总体中各组成部分所…

【linux】信号——信号产生

信号产生 1.预备知识2.信号产生2.1通过键盘发送信号2.2系统调用接口向进程发送信号2.3硬件异常产生信号2.4软件条件2.5总结 自我名言:只有努力,才能追逐梦想,只有努力,才不会欺骗自己。 喜欢的点赞,收藏,关…

区分(GIOU、DIOU、CIOU)(正则化、归一化、标准化)

一、IOU IoU 的全称为交并比(Intersection over Union)。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。 1.GIOU:预测框(蓝框)和真实框(绿框)的最小外接矩形C。来获取预…

没想到吧!成功的图标设计,只需遵循这几个原则

图标在任何用户界面环境中都是不可或缺的元素。虽然许多图标小到可能被忽视,但它们在解决设计难题和用户体验问题上却起着决定性的作用。作为一名UI设计师,你必须要掌握的基本技巧之一就是图标设计。理解并应用图标设计的原则不仅可以帮助设计师快速定位…

如何有效地开发客户关系?

如何有效地开发客户关系? 有效地开发客户关系,是企业在竞争激烈的市场中获得优势的关键。通过深入了解客户需求、提供优质的产品和服务、建立良好的沟通渠道、提供个性化的体验以及建立长期合作关系等方式,企业可以有效地开发客户关系&#…

CSS特效020:涌动的弹簧效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

WebUI自动化学习(Selenium+Python+Pytest框架)004

接下来,WebUI基础知识最后一篇。 1.下拉框操作 关于下拉框的处理有两种方式 (1)按普通元素定位 安装普通元素的定位方式来定位下拉框,使用元素的操作方法element.click()方法来操作下拉框内容的选择 (2&#xff09…

Java容器合集

目录 浅谈 Array数组 初始化(动与静) 动态初始化 静态初始化 CRUD 增 查 索引取值 遍历 改 删 走进底层 栈与堆 一个数组的诞生 多数组 避坑指南 索引越界 空指针异常 小试牛刀 Collection List部落 介绍和特点 方法 ArrayList 介绍 方法 遍历 Li…

武汉凯迪正大KDZD5289硫化曲线测试仪(电脑无转子硫化仪)

电脑无转子硫化仪 硫化时间测试仪 硫化曲线仪 硫化曲线测试仪 武汉凯迪正大KDZD5289产品概述 KDZD5289硫化曲线测试仪(电脑无转子硫化仪)采用电脑控制进口温控仪进行准确控温,计算机适时进行数据处理并可进行统计、分析、存储对比等&#xff…

刚提离职,当天晚上公司就派人偷偷翻看我的电脑!

你被公司恶心过吗? 一位网友分享了被“恶心”的经历:提了离职,当天晚上电脑就被打开,提示有人登录自己微信,所有电脑记录都被偷偷翻看,她一怒之下在群里问,有人承认用了她的电脑,理由…

uniApp应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准。

根据应用市场审核标准。我们开发的软件想要过审就必须要在应用在运行时,向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限!! 但是我们会发现做了提示弹框后又会驳回弹窗评频繁弹窗等等一系列…

【数据结构】单链表---C语言版

【数据结构】单链表---C语言版 一、顺序表的缺陷二、链表的概念和结构1.概念: 三、链表的分类四、链表的实现1.头文件:SList.h2.链表函数:SList.c3.测试函数:test.c 五、链表应用OJ题1.移除链表元素(1)题目…

Linux中的内存回收:Swap机制(图文并茂)

1、Swap机制是什么 : Swap机制是一种利用磁盘空间来扩展内存的方法。当系统的物理内存不足时,可以把一些不常用的内存数据写入到磁盘上的Swap分区,从而释放出更多的内存给其他需要的进程。当这些内存数据再次被访问时,系统会把它们…

多模态大模型总结2(主要2023年)

LLaVA-V1(2023/04) 论文:Visual Instruction Tuning 网络结构 如下图 所示为 LLaVA-v1 的模型结构,可以看出其简化了很多,但整体来说还是由三个组件构成: Vision Encoder:和 Flamingo 模型的 V…

Agent举例与应用

什么是Agent OpenAI 应用研究主管 Lilian Weng 在一篇长文中提出了 Agent LLM(大型语言模型)记忆规划技能工具使用这一概念,并详细解释了Agent的每个模块的功能。她对Agent未来的应用前景充满信心,但也表明到挑战无处不在。 现…