56.网游逆向分析与插件开发-游戏增加自动化助手接口-通过UI分析自动药水设定功能

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

上一节内容:自动药水设定功能的逆向分析-CSDN博客

这次是假设没有之前的思路积累的话,怎样去找按钮事件。

通过ui当做切入点去做,就是一个窗口它显示不显示,游戏怎样控制这个事情,窗口渲染不渲染,它肯定是有一个标志位的东西,默认来讲假设它是0或者1,也就是肯定会通过数据变化找到这个内容的,当找到这个相关的内容以后,接下来就可以很轻松的去处理这个事情。

接下来打开Cheat Engine,如下图选择位置的初始值,然后点击首次扫描

然后把游戏的自动药水设定窗口关闭,然后在Cheat Engine里输入0,再点击 再次扫描,这样一步的意思就是假设 自动药水设定窗口 显示时标志位是1,关闭时标志位是0,如果这样找不到东西,那就把它们反过来,显示时标志位是0,关闭时标志位是1,这样再找,应该就能找到了,这样说的原因是,如果是我们开发这个东西,在显示窗口时肯定是传一个bool或者BOOL类型,一般人也都会这样去做,所以才这样去找,

然后显示出来之后再用1找,就一直重复这一步与上一步的操作就完了

最终找到了33个值,这个时候,这么多数据的原因,是有可能它窗口里每一个按钮,继续往下看

下图红框中,每个按钮都有一个显示不显示的值,所以这么多值是正常的

接下来要看看它有没有与其它界面共享数据,是有共享的,因为我们的自动药水设定窗口没有打开,所在可以再扫一次0

最终就17个了

 在分析的时候可以看出第一个红框的值更新的慢,下面十六个更新的很快,所以直接把第一个给移除掉了

然后把它们的值都改成1

但是很尴尬都没有显示出来,然后通过游戏中的按钮把自动药水设定窗口打开发现,它在这个基础上加了一个1

我们是想找一个象开关一样的东西,很遗憾没有找到,不管是之前的操作失误还是怎样,反正就是没找到,既然没找到那就死马当活马医,因为我们发现不管是快捷键打开自动药水设定窗口还是按钮打开,它会把值加1,会导致数据的变化,这一点是绝对没问题的,既然没问题,那我们就通过这个变化往上找,除非用了多线程技术来回倒,那么否则的话我们一定能够找到,我们要找的地方。所以通过找出是什么改写了这个地址的方式往上找

发现有两个地方改写了它

可以发现一个是减1一个是加1

先保存一下,寄存器信息,98bc81

接下来把Cheat Engine关掉,打开x96dbg调试

一下断点,就会卡主,所以这里是共用的,所以之前保存的哪两个信息图有用了,所以这时要下条件断点

设置完条件断点,再从游戏中打开自动药水设定窗口,就断点住了

然后直接按ctrl+f9在按f8往上找,然后就到了下图中的函数里,到函数之后就是一步一步往上分析的过程了

 0x722A59地址一直找到一个只有自动药水设定功能才会调用的位置,但是到了这里也并不知道这里是偏底层的位置还是偏上层的位置,所以还得往上,就是找到最后一层它们不共用的地方,就是现在有三个接口 a接口 b接口 c接口调用了一个共用的函数,共用函数又调用了一个x函数,x函数又调用了另外的函数,现在不知道是在x函数还是另外的函数里,最好的方式使用共用函数里下手,共用函数的特定就是再往上一层就会跑到abc三个不同的函数,就是按下快捷键a函数响应,bc函数不响应,按下自动药水设定按钮时,b函数响应,ac函数不响应,也就是说现在还是处于abc三个接口共用阶段,所以还得网上找

0x84CB6B 经过一直往上找,最终来到了下图位置,下图位置的代码是一块一块的,它只有按快捷时才会触发,另外两个接口没法触发,所以现在按照我们的逻辑来讲,abc三个地方,现在已经找到a快捷键的这个地方,快捷键调用的地方bc也会调用,所以说快捷键到上一个函数之间是要分析的过程,所以 0x84CB6B位置调用的0x8687F0  函数要重点找。

0x8687F0 函数abc三个接口都会调用它,但是取消按钮也会调用,取消按钮的处理看上一节的分析(通过入参决定的是取消还是其它的),接下来就是分析参数、调用约定、写原型(跟上节一模一样),所以通过这种方式我们也找到了,上一节找到的函数,查找的方式不只这一种,逆向分析的方式有很多种,这只是其中一种,熟练正向开发,逆向的方式也就多了。

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

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

相关文章

传统项目基于tomcat cookie单体会话升级分布式会话解决方案

传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案 ##引入redis,spring-session依赖 <!--redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…

ZigBee协议栈 -- Zstack协议栈(Zstack2.5.1a)

文章目录 Zstack 协议栈介绍ZStack 的安装ZStack 的结构系统初始化启动操作系统 设备的选择定位编译选项ZStack 中的寻址ZStack 中的路由OSAL 调度管理ZStack 中的串口通信设置配置信道配置 PANID 和要加入的网络最大有效载荷大小非易失性存储器 Zstack 协议栈介绍 CC2530 芯片…

设计模式(4)--对象行为(8)--状态

1. 意图 允许一个对象在其内部状态改变时改变它的行为。 2. 三种角色 上下文环境(Context)、抽象状态(State)、具体状态(Concrete State) 3. 优点 3.1 将与特定状态相关的行为局部化&#xff0c;并且将不同状态的行为分割开来。 3.2 使得状态转换显式化。 3.3 State对象可被共…

手机号码校验工具类(正则表达式)

手机号码有很多种方式&#xff0c;可以使用正则表达式&#xff0c;进行判断。网上有很多&#xff0c;不用去记&#xff0c;查就行。 import org.apache.commons.lang3.StringUtils; ​ import java.util.regex.Matcher; import java.util.regex.Pattern; ​ /*** 手机号码校验…

香橙派 ubuntu实现打通内网,外网双网络,有线和无线双网卡

当香橙派 ubuntu 连了有线&#xff0c;和无线时&#xff0c;默认请求外网时&#xff0c;只走一个网卡&#xff0c;如走了内网网卡&#xff0c;就只能访问内访问&#xff0c;访问不了外网&#xff1b;走了外网网卡就只能访问外网&#xff0c;访问不了内网&#xff1b; 实现双网…

大数据Doris(四十四):查询物化视图和自动匹配

文章目录 查询物化视图和自动匹配 一、​​​​​​​查询物化视图

炫酷按钮制作(HTML+CSS+Javascript)

实现效果&#xff1a; 当鼠标点击按钮时&#xff1a; 实现代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>div{margin-top: 20px;margin-left: 20px;}.button{border: soli…

9. 进程

9. 进程 1. 进程与程序1.1 main() 函数由谁调用1.2 程序如何结束1.2.1 注册进程终止处理函数 atexit() 1.3 何为进程1.4 进程号 2. 进程的环境变量2.1 应用程序中获取环境变量2.1.1 获取指定环境变量 2.2 添加/删除/修改环境变量2.2.1 putenv()2.2.2 setenv()2.2.3 命令行式添加…

IC入门必备!数字IC中后端设计实现全流程解析(1.3万字长文)

吾爱IC社区自2018年2月份开始在公众号上开始分享数字IC后端设计实现相关基础理论和实战项目经验&#xff0c;累计输出文字超1000万字。全部是小编一个个字敲出来的&#xff0c;绝对没有复制粘贴的情况&#xff0c;此处小编自己得给自己鼓鼓掌鼓励下自己。人生不要给自己设限&am…

自激振荡电路笔记 电弧打火机

三极管相关 三极管的形象描述 二极管 简单求解&#xff08;理想&#xff09; 优先导通&#xff08;理想&#xff09; 恒压降 稳压管&#xff08;二极管plus&#xff09; 基础工作模块 理想稳压管的工作特性 晶体管之三极管(“两个二极管的组合” ) 电弧打火机电路 1.闭合开…

vue 预览 pdf、word、excel

vue 预览 pdf、word、excel 这是之前做项目的时候涉及到的一个功能&#xff0c;当时做了之后就一直没有整理&#xff0c;其实也很简单&#xff0c;功能不多&#xff0c;只是预览&#xff0c;没有在线编辑的功能&#xff0c;所以呢&#xff0c;啊哈哈哈哈哈&#xff0c;一个插件…

用轻量级ORM--Dapper调用MySQL存储过程

阅读本文你的收获 写一个MySQL的分页存储过程学会使用Dapper去调用存储过程 在《用轻量级ORM–Dapper实现泛型仓储》中分享了轻量级ORM框架的基本使用&#xff0c;并实现了一个泛型仓储。本文继续分享用Dapper执行存储过程&#xff0c;区别于上文用的SQL Server数据库&#xf…

【异常】Incorrect string value: ‘\xE5\xAE\xA2\xE4\xBA\xBA...‘ for column

【异常】incorrect string value :\xAA\xE4\xBA for column Incorrect string value: \xE5\xAE\xA2\xE4\xBA\xBA... for column 将配置文件中的连接信息改为如下 spring.datasource.urljdbc:mysql://127.0.0.1:3306/dbname?useUnicodetrue&character_set_serverutf8mb…

3D视觉-结构光测量-多线结构光测量

工作原理 多线结构光测量在测量方式上类似上述线结构光测量&#xff0c;但是两者也有着一些明显的差别。这种形式的结构光测量&#xff0c;也常常被成为面结构光测量。首先激光器发出电光源通过通过光栅的调制产生多个切片光束&#xff0c;这些切片光束照射到待测物体表面后形成…

安全生产知识竞赛活动方案

为进一步普及安全生产法律法规知识&#xff0c;增强安全意识&#xff0c;提高安全技能&#xff0c;经研究&#xff0c;决定举办以“加强安全法治、保障安全生产”为主题的新修订《安全生产法》知识竞赛活动&#xff0c;现将有关事项通知如下&#xff1a; 一、活动时间&#xf…

第22课 类和对象

文章目录 前言一、自定义数据类型——类二、构造函数与析构函数三、类类型的变量——对象1. 对象的定义2. 对象成员的访问3. 定义一个长方形的类Rectangle4. 定义一个圆形的类Circle5. 定义一个数据成员由三角形的3条边构成的三角形类Triangle 课后练习1. 定义一个简单的日期类…

大模型系列:OpenAI使用技巧_自定义文本向量化embeding

文章目录 0. Imports1. 输入2. 加载和处理输入数据3. 将数据分成训练和测试集4. 生成合成的负样本5. 计算嵌入和余弦相似度6. 绘制余弦相似度的分布图7. 使用提供的训练数据优化矩阵。8. 绘制训练期间找到的最佳矩阵的前后对比图&#xff0c;展示结果 本笔记本演示了一种将Open…

yolov8实战第四天——yolov8图像分类 ResNet50图像分类(保姆式教程)

yolov8实战第一天——yolov8部署并训练自己的数据集&#xff08;保姆式教程&#xff09;_yolov8训练自己的数据集-CSDN博客在前几天&#xff0c;我们使用yolov8进行了部署&#xff0c;并在目标检测方向上进行自己数据集的训练与测试&#xff0c;今天我们训练下yolov8的图像分类…

LangChain.js 实战系列:入门介绍

&#x1f4dd; LangChain.js 是一个快速开发大模型应用的框架&#xff0c;它提供了一系列强大的功能和工具&#xff0c;使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。 LangChain.js 是一个…

环形锻件全自动尺寸测量法兰三维检测自动化设备-CASAIM自动化蓝光检测系统

锻造是一种利用锻压机械对金属坯料施加压力&#xff0c;使其产生塑性变形以获得具有一定机械性能、一定形状和尺寸锻件的加工方法&#xff0c;锻压&#xff08;锻造与冲压&#xff09;的两大组成部分之一。 目前客户使用专用直径千分尺、塞规、塞尺等对锻件形状尺寸误差进行测…