【游戏逆向】《某某明月刀》BUFF及技能预判

news2024/9/29 21:30:35

为了提高游戏的可玩性,也为了提高外挂制作的难度,很多游戏对BOSS的技能伤害都设计的特别高,为了达到及时躲避的效果,我们需要对技能做预判。预判的方式有很多,比如通过收包的方式,这种方式判断的速度最快,但是代码写起来比较复杂,HOOK收包时也往往会被检测导致封号或崩溃。另一种方式就是在释放技能时进行遍历,很多游戏会加技能释放的状态和人物本身的BOSS存放在一起,比如《天涯明月刀》,《梦三国》等。接下来我们以天涯明月刀为例来分析下技能的预判。

首先我们通过搜索BUFF状态的名字,来找到技能状态库,这里要注意的是游戏内的汉字大多是以UTF-8编码的。过程很简单,我们就不去分析了,直接给公式。

[BUFF基地址]+1144]+64 BUFF名字遍历起始地址

[[BUFF基地址]+1144]+68 BUFF名字遍历数组成员数量

[[BUFF基地址]+1144]+5C BUFF名字遍历对象数量

[[[[BUFF基地址]+1144]+64]+n*4]+0 BUFFID

[[[[BUFF基地址]+1144]+64]+n*4]+4 BUFF对象

[[[[BUFF基地址]+1144]+64]+n*4]+8 BUFF链表

[[[[[BUFF基地址]+1144]+54]+n*4]+4]+0 BUFFID

[[[[[[BUFF基地址]+1144]+54]+n*4]+4]+4]+0 BUFF名字

我们得到一个数组套链表的结构,这个结构被广泛的应用于这款游戏当中。

接下来我们去分析NPC和角色当前所有的BUFF和技能状态。我们接着之前的BUFF库的代码继续分析,取状态名字的函数传入了一个技能ID的参数,当我们访问角色身上的BUFF时会断下(如图)
在这里插入图片描述
向上分析技能,我们发现追到了一个结构体数组,而我们角色当前BUFF状态和即将释放技能时的预备动作,都会存放在这个数组里,每一个动作都对应一个不同的ID。继续向上分析,发现这个数组是在角色对象下存放的(如图)
在这里插入图片描述
通过代码输出,我们发现这个数组也同样适用于怪物和其他玩家。公式如下

[NPC或角色对象]+304 BUFF数组起始地址

[NPC或角色对象]+308 BUFF数组结束地址

[[NPC或角色对象]+304]+80*n+0 BUFFID 技能预判ID

这个数组中出了ID,还有很多的未知数据,很有可能是当前释放技能的范围,目标,朝向,形状等信息,这需要通过大量的对比和分析来判断。

这样我们就达到了一个对技能的预判效果,通过遍历到BOSS的不同的技能名字采取不同的躲避方式即可。

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

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

相关文章

( 数组和矩阵) 667. 优美的排列 II ——【Leetcode每日一题】

❓667. 优美的排列 II 难度:中等 给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件: 假设该列表是 answer [a1, a2, a3, ... , an] &#xff0…

【VM服务管家】VM4.2软件使用_5.4 工具类

目录 1.2.1 平移旋转标定:平移旋转标定模块的使用方法1.2.2 旋转标定:旋转标定模块的使用方法1.2.3 单点抓取:单点抓取模块的使用方法1.2.4 单点纠偏:单点纠偏模块的使用方法1.2.5 单点对位:单点映射对位模块的使用方法…

【PyTorch入门教程】1. 基础知识

欢迎关注 【LearnOpenCV: PyTorch入门教程】 PyTorch入门:Ch1 基础知识 PyTorch入门:[Ch2 使用预训练模型进行图像分类] PyTorch入门:[Ch3 使用迁移学习进行图像分类] PyTorch入门:[Ch4 使用ONNX和Caffe2进行模型推理] PyTorch入门…

中国机器人及人工智能大赛

报名 报名网站:https://www.caairobot.com 报名时,请在队伍名称后边添加任务后缀,比如,“诚朴-A”表明 队伍名称诚朴队,报名完成任务 A 然后在大赛官方 QQ 群 633244198(智慧农业-机器人及人工智能大赛&…

力扣刷题215.数组中的第K个最大元素

215.数组中的第K个最大元素 215.数组中的第K个最大元素题目描述思路暴力解法堆排序快速排序 215.数组中的第K个最大元素 215. 数组中的第K个最大元素 - 力扣(LeetCode) 题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素…

Postman+Java springboot演示 get post put delete请求并携带(路径 路径问号后 json 表单)参数形式

我们先创建一个java的springboot工程 在项目中 找到启动类的位置目录 在项目创建一个类 叫 user 我是想将 user 当做一个属性类的 按规范来讲 我们可以创建一个entity包 然后在下面去创建属性类 但这里 我们不想搞那么麻烦了 毕竟只是练习一下 然后 user参考代码如下 package…

【Java校招面试】基础知识(五)——GC

目录 前言一、基础概念二、垃圾回收算法三、垃圾收集器四、引用后记 前言 本篇主要介绍Java垃圾回收机制——GC的相关内容。 “基础知识”是本专栏的第一个部分,本篇博文是第五篇博文,如有需要,可: 点击这里,返回本专…

【重新定义matlab强大系列五】函数filloutliers检测并替换数据中的离群值

🔗 运行环境:matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

PyCharm下载、安装、注册以及简单使用【全过程讲解】

在使用PyCharm IDE之前,请确保自己的计算机里面安装了Python解释器环境,若没有下载和安装可以看看我之前的文章>>>Python环境设置>>>或者还可以观看视频讲解。 注意:本文软件的配置方式仅供个人学习使用,如有侵…

有研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具(下)

导语:研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具。 Apple EFI IM4P分配器 介绍 解析苹果多个EFI固件.im4p文件,并将所有检测到的EFI固件分割为单独的SPI/BIOS映像。 使用 你可以拖放或手动输入包含Apple EFI IM4P固件的文件夹的完整路径。…

【VM服务管家】VM4.2平台SDK_6.3 控件嵌入类

目录 2.3.1 渲染控件:渲染控件上自定义图形的方法2.3.2 参数控件:参数配置控件绑定模块的方法2.3.3 控件颜色:控件颜色修改方法2.3.4 独立控件:二次开发单独显示Group的方法2.3.5 取流控件:实时取流控件的使用方法2.3.…

【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码

【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码 相关链接 (1)建模方案 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一…

python为什么长期霸占榜首

Python霸占榜首 只因它真的很强 Python,年龄可能比很多读者都要大,但是它在更新快速的编程界却一直表现出色,甚至有人把它比作是编程界的《葵花宝典》,只是Python的速成之法相较《葵花宝典》有过之而无不及。 Python简洁&#x…

【Hello Network】UDP协议

作者:小萌新 专栏:网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:简单介绍传输层和UDP协议 UDP协议 传输层端口号端口号范围划分知名端口号端口号与进程netstat与iostatpidof UDP协议UDP协议格式udp的数据封装udp的数…

2.2磁盘分区

2.2 磁盘分区 一个磁盘可以被划分为多个分区,有一个磁盘并且将他们划分为C;D;E盘,那个C,D,E就是分区(partition)。 2.2.1 磁盘连接的方式与设备文件名的关系 个人计算机常见的磁盘接口有两种,分别是SATA与SAS接口&…

精品:Stimulsoft Forms 2023.2.2

Stimulsoft Forms 是一种用于创建、编辑、填写、发布、分发交互式表单和收集结果的工具。我们的产品可嵌入到应用程序中,并允许您创建各种自定义填充模板。丰富的功能使模板具有真正的交互性。用户会收到 PDF 格式的可填写表格,他们可以在任何支持此格式…

ZooKeeper安装与配置集群

简介: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布…

ChatGPT初尝试——合并Excel表格【AI版】

ChatGPT真的能提升生产力吗?【AI版】 无意间的刷到的视频一、提需求二、ChatGPT用Python编写代码三、意外的解释四、ChatGPT改用Java编写代码五、GPT第二次生成Java代码尾巴 无意间的刷到的视频 晚上在家刷视频,突然看到一个在讲关于AI编程的视频&#…

网络安全:网络信息安全的概述.

网络安全:网络信息安全的概述 网络信息安全是一门涉及计算机科学,网络技术,通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。 它主要是指网络系统的硬件、软件及其系统中的数据受到保护,不受…

深度学习 -- Pytorch学习 数据集API Dataset与DataLoader 重载鸢尾花数据集

前言 在模型训练的步骤中,数据的部分非常重要,它的过程主要分为数据收集、数据划分、数据读取、数据预处理。 数据收集的有原始样本和标签(Img,label) 数据集的划分需要分为训练集、验证集、测试集。 训练集负责训练模型,验证集…