54.网游逆向分析与插件开发-游戏增加自动化助手接口-项目需求与需求拆解

内容来源于:易道云信息技术研究院VIP课

项目需求:

为游戏增加VIP功能-自动化助手。自动化助手做的是首先要说一下背景,对于授权游戏来讲它往往年限都比较老,老游戏和新游戏设计理念是不同的,比如说老游戏基本上在10年以前的游戏它设计的时候都是你要玩命的练级、打怪、打装备就这样大量的消耗我们的时间,但是我们现在的10年以后的新的游戏国产游戏设计理念是它是要求每个人差距都是相同的,就是我们之间是没有差距的,就是只要你每天上来玩三个小时大家都一样,没有高低差距,将来的差距主要体现在技术方面,但授权游戏不是这样的,授权游戏因为是老游戏,所以它还是要练级、打怪,但是想一下有谁能手动的在这个年代手动的打怪坚持下来,这是不可能的没有人能坚持,所以就迎来的我们现在的这个需求,如果它手动打怪不可能,将来用户最大的选择就是去卖外挂,既然它去买外挂,所以我们游戏的运营方说既然你要去买外挂,那我还不如去提供给你一个比较好用的自动化助手,来帮助你能够快速的练级,这样的话我也能够保证功能在可控范围内,现在靶场游戏当年它们在运营这款游戏的时候,它们也是这样做的,到这就能明白要做的自动化助手大概是个什么东西了,但是现阶段只做界面,只实现自动化助手的显示,后续会慢慢的扩充自动化助手,帮助玩家有一个更好的游戏体验,游戏中本身是有一个辅助性的设定的,但是它比较鸡肋,如果是非vip它还是只能用游戏本身的自动化药水\(图1),如果是vip当再按自动化药水设定的时候就显示,我们全新的功能,就是我们提供的自动化助手功能,也就是当是vip时就把原本的自动化药水按钮改成自动化助手[vip],对于非vip,就还是叫原来的自动化药水,使用自动化药水功能时就弹出一个提示,可以开通vip使用更高级的自动化助手功能,就是说对于非vip的玩家来说你得告诉它你有这个东西你得去买

需求拆解:

第一个功能:

  首先找到自动化药水按钮的功能在什么地方,自动化药水还有快捷键(T键)所以它是有两个接口,所以除了要处理按钮点击还要处理快捷键的点击,然后它还有个接口如图3。所以它是一共有三个入口点,所以接下来要去分析每一个入口点,这里有一个技巧,就是三个入口点它会不会为每个入口点单独设计一套功能,它们三个界面都是一样的所以本质上它们三个都还是调用的一个地方,但是这三个地方的调用逻辑往往是不一样的,尤其是快捷键的逻辑更是不一样的,所以要有一个基本的概念,这三个不管逻辑再不一样,开头可能不一样,往底层是一定会调用一个共同的地方,所以我们只需要在共同的地方看有没有机会去做一个统一的处理,这样的效果是最好的,做处理就是根据是不是vip来处理,如果不是vip就继续运行原本的代码,如果是vip这个时候就要弹出我们自己的窗口,这样第一个功能就搞定了。

第二个功能:

  第二个功能修改菜单比较麻烦,有两个方法,第一个方法这个自动药水设定数据是存在客户端里,在客户端里一定有个文本文档或者有一个配置文件留了界面上的一些东西,它加载游戏的时候它一定是把这个数据给加载进来最后通过某种索引或者某种东西,来把这个东西加载进来,就这样的一种方式,首先找到客户端的文本文档就能修改客户端,客户端的文件是压缩了的首先要解压,但解压它是有自己的算法的,需要自己写解压。第二个方式,启动的时候它会加载相关的配置文件到内存里,然后自动化药水设定是一个ui、是一个按钮,按钮上的文本和内存里的数据它一定有就是按钮初始化的时候一定要根据内存里,把这个内存里的文本读到按钮里,一定有这样的一个过程,我们就要找这个过程,然后从这个过程里下手脚,然后游戏它读文本内存的时候一定会想办法访问这块内存,然后游戏怎样得到这个内存我们就怎样得到这个内存,我们得到内存之后就可以随意的修改文本了。

第三个功能:

  找到游戏中信息提示的接口,实现我们想要的信息,比如玩家不是vip,我们要弹框提示它我们有自动化助手,如果弹一个MessageBox这样就很掉价很不和谐,如果用图4里的提示效果就会比MessageBox好很多,我们未必能调用图4的提示,但要尽量努力去用这样的方式。

 图1:

 通过判断血量然后按快捷栏里的东西,快捷栏如图2:

图2:下图红框里是快捷栏,也就是自动化药水是通过把药水放到快捷栏上,通过快捷栏来操作,这是游戏本身的一个功能

图3:

通过鼠标右键点击也可以弹出自动化药水

图4:

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

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

相关文章

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1,EasyX的坐标2,EasyX的设备 三、窗口函数1,初始化窗口函数2,关闭绘图窗口3,设置窗口背景板颜色4,清空绘图设备 前言 easyx是针对c的图形库,…

360高级java面试真题

今年IT寒冬,大厂都裁员或者准备裁员,作为开猿节流主要目标之一,我们更应该时刻保持竞争力。为了抱团取暖,林老师开通了《知识星球》,并邀请我阿里、快手、腾讯等的朋友加入,分享八股文、项目经验、管理经验…

在kuboard页面配置harbor地址,配置私有仓库

点击项目-配置中心-密文,配置harbor地址 配置完仓库地址需要在对应的k8s master节点 worker节点,配置私有仓库地址要是不配置会报错 [rootk8smaster ~]# docker login 10.4.7.9:80/ -u admin -p Harbor12345 WARNING! Using --password via the CLI is…

第三代半导体SiC 专业术语及指标解释

SiC : 化合物半导体材料,第三代半导体材料代表,主要用于功率半导体领域 GaN : 化合物半导体材料,第三代半导体材料代表,主要用于高频射频领域 GaAs: 化合物半导体材料,第二…

使用spring boot实现异常的统一返回

在这个前后端分离的时代,一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式,不再出现服务器500的错误。 新建一个spring boot项目,并导入knife4j的依赖。 写一个controller控制器,用来是…

数据结构:队列(链表和数组模拟实现)

目录 1.何为队列 2.链表模拟实现 2.1 节点和队列创建 2.2 初始化队列 2.3 入队操作 2.4 出队操作 2.5 遍历队列 2.6 获取队首和队尾元素 2.7 判断队列是否为空 2.8 完整实现 3. 数组模拟实现 3.1 创建队列 3.2 入队和出队操作 3.3 遍历队列 3.4 获取队首和队尾元…

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南 ​ 在 Pandas 中,apply、map 和 applymap 是常用的数据转换和处理方法,它们为数据分析和数据处理提供了灵活的功能。这些方法可以根据具体的需求选择合适的方法进行操作。…

2023结婚成家,2024借势起飞

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

今晚咱们一起来场特别的技术跨年!!

▼最近直播超级多,预约保你有收获 今晚跨年直播:《LLM在电商推荐系统的应用案例实战》 —1— 今晚咱们来场技术跨年! LLM 大模型无疑是2023年最重磅的技术,逐渐在各行各业产生了越来越重要的实质影响,2024年的钟声今晚…

uni-app引入vant表单(附源码)

新建项目 下载安装vant npm i vant main.js引入 import { Form } from vant; import { Field } from vant;Vue.use(Form); Vue.use(Field);代码引入 <van-form submit"onSubmit"><van-fieldclass"rePwd"v-model"username"name"请…

我的512天创作者纪念日总结:高效、高现

文章目录 512天创作者纪念日&#xff1a;2023年的12月31日CSDN的512天消息提醒第一篇文章&#xff0c;最后一篇文章总计847篇文章&#xff0c;每月发文分布512天&#xff0c;各专栏文章统计512天&#xff0c;互动总成绩 512天创作者纪念日&#xff1a;2023年的12月31日 2023年…

LabVIEW开发滚动轴承故障诊断系统

LabVIEW开发滚动轴承故障诊断系统 在工业自动化和机械维护领域&#xff0c;滚动轴承的故障诊断是至关重要的。开发了一个基于LabVIEW的振动信号分析系统。这一系统集成了先进的信号处理技术&#xff0c;如经验模式分解&#xff08;EMD&#xff09;、Morlet小波滤波器和隐Marko…

【LMM 004】LLaVA-RLHF:用事实增强的 RLHF 对齐大型多模态模型

论文标题&#xff1a;Aligning Large Multimodal Models with Factually Augmented RLHF 论文作者&#xff1a;Zhiqing Sun, Sheng Shen, Shengcao Cao, Haotian Liu, Chunyuan Li, Yikang Shen, Chuang Gan, Liang-Yan Gui, Yu-Xiong Wang, Yiming Yang, Kurt Keutzer, Trevor…

【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程

探讨Redis 6.0为何需要启用多线程 背景介绍开启多线程多线程的CPU核心配置IO多线程模式单线程处理方式多线程处理方式 为什么要开启多线程&#xff1f;充分利用多核CPU提高网络I/O效率响应现代应用需求 多线程实现启用多线程 最后总结 背景介绍 在Redis 6.0版本中&#xff0c;…

计算机网络(6):应用层

每个应用层协议都是为了解决某一类应用问题&#xff0c;而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。 应用层的具体内容就是规定应用进程在通信时所遵循的协议。 应用层的许多协议都是基于客户服务器方式。即使是对等通信方式&#x…

【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

文章目录 &#x1f680;前言&#x1f680;C有何过C之处&#xff1f;&#x1f680;C中的关键字&#x1f680;命名空间✈️为什么要引入命名空间&#xff1f;✈️命名空间的定义✈️如何使用命名空间中的内容呢&#xff1f; &#x1f680;C中的输入和输出✈️C标准库的命名空间✈…

实战入门 K8s剩下三个模块

1.Label Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识&#xff0c;用来对它们进行区分和选择。 Label的特点&#xff1a; 一个Label会以key/value键值对的形式附加到各种对象上&#xff0c;如Node、Pod、Service等等 一个资源对象可以定义任意数量…

圆梦、取舍、成长—独孤风的2023年回顾

大家好&#xff0c;我是独孤风&#xff0c;一位曾经的港口煤炭工人&#xff0c;目前在某国企任大数据负责人&#xff0c;公众号大数据流动的作者。 2023年马上就要过去了&#xff0c;这一年我们结束了三年核酸检测的生活。一切回归到正常的轨迹。回望这一年可能更多的时候会觉得…

计算机操作系统(OS)——P5设备管理

1、I/O设备的概念和分类 什么是I/O设备 I/O就是输入/输出&#xff08;Input/Output&#xff09;。 I/O设备就是可以将数据输入到计算机&#xff0c;或者可以接收计算机输出数据的外部设备&#xff0c;属于计算机中的硬件部件。 UNIX系统将外部设备抽象为一种特殊的文件&#x…