43.x86游戏实战-XXX寻找吸怪坐标

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:42.x86游戏实战-C++实现全图秒杀功能

之前代码中用的坐标是偏移0x18C和0x190位置,这俩未位置使用CE修改之后没有反应(怪物不瞬移),所以这俩位置并不是真正的坐标,真正的坐标改了之后怪物会瞬移,接下来先找真正的坐标。

首先来到有怪物的地图,然后把怪物清理的就剩下一个

然后注入我们写的dll,点击遍历怪物,找一下怪物的地址

然后记住怪物地址,一会CE中要用

然后使用管理员打开CE,并附加到游戏,然后输入怪物地址+0x18C位置(也就是坐标)

然后就能看到怪物坐标的数据了

然后使用CE的范围搜索

然后搜出来很多结果

这时引怪物移动改变坐标,移动之后再次使用CE搜索,如下图

然后就能找到了,修改下图红框地址的值怪物就会瞬移

然后接下来通过使用硬件断点来找基址,所以使用管理员打开OD,并附加游戏,附加之前记得过一下检测(0x755B88位置的值改成EB,详情:34.x86游戏实战-XXX过检测代码分析)

然后以十六进制显示

然后输入EB

过完检测使用管理员打开OD并附加到游戏,首先点位置1,然后按CTRL+G,然后输入上方通过CE找的可以修改的坐标地址,然后点确定(本次步骤要做两次,OD有个问题,第一次CTRL+G会乱搞)

然后下一个硬件写入断点

然后在下图位置断了下来,xmm0是专门存放浮点数的寄存器(专门存放小数的寄存器),可以看到这里给数组里的一个值进行了赋值(ecx+eax*4*4地址里的值是坐标)也就是修改坐标

xmm0寄存器的值来自于ebp+C

ebp是的值是栈顶数据(函数中的数据),ebp+C一般是函数的第二个参数,这个参数并不重要,重要的是ecx,所以接下来找ecx,ecx在下图中并没有看到有赋值的代码,所以ecx的值来自于上一层

然后取消硬件写入断点(如果不取消使用CTRL+F9功能可能会乱断点住)

取消硬件写入断点之后,按CTRL+F9来到上一层,看看ecx的值哪来的,按完CTRL+F9之后,在下图中可以看出,ecx的值来自愈ebp-64,所以接下来要找ebp的值哪来的

然后通过断点一路F8 下图红框两个位置给ecx的值都是一样的,然后ebp并没有看到在哪赋值的,但是esi看到了

用鼠标滚轮往上翻,一般来到函数头部附近就可以看到,然后如下图esi的值来自于ecx,ecx的值来自于上一层,所以还是要CTRL+F9

使用鼠标滚轮往上翻了之后,怎么回到往上翻之前的位置?这里按下图红框的C就可以

然后CTRL+F9,可以看到ecx的值又是来自于esi,如果不出意外esi的值又会是来自于ecx

然后使用鼠标滚轮往上翻,来自于ecx,所以还要继续CTRL+F9

CTRL+F9之后来到下图位置,下图红框可以看出ecx的值来自于ebp-48位置

然后找ebp的时候发现,这个函数里几乎全是vm代码,这就没法找,往上反也反不出去

上方是通过下硬件写入断点找的,接下来通过下硬件访问试试

然后访问断点断下来,然后通过dd ecx+eax*4+4,看到 ecx+eax*4+4的值是坐标,为了后续方便这里称它为坐标列表,然后找ecx

然后删除访问断点

然后CTRL+F9之后,然后发现ecx的值还是来自于ecx,所以要继续CTRL+F9

然后CTRL+F9之后,也没有ecx的赋值,这里在retn位置断下来了,要按F8,不要按CTRL+F9,然后这里push了一个0,这个0就是 ecx+eax*4+4中的eax的值

然后F8之后,看到ecx的值还是来自于ecx,所以继续往上

CTRL+F9之后,ecx的值来自于edi,edi的值来自于ebp+8,然后ebp的值来自于esp,ebp+8也就是函数第一个参数,所以要继续往上反

然后CTRL+F9之后,第一个参数是esi的值,然后esi还是来自于函数的第一个参数

然后CTRL+F9,这里比较复杂,慢慢细看发现它的值来自于ebp,并没有什么有用的东西

这里esi最后一次赋值是来自于ebp-4,这种减法是访问的函数中的局部变量,然后并没有看到给局部变量赋值的操作

然后通过断点之后按F8的方式发现,ebp-4的值来自于ecx+4

然后进入0xB09680函数

然后ecx的值来自于ebx,ebx的值来自于esi+AC,然后esi的值来自于ecx,ecx的值来自于上一层

然后CTRL+F9,到了下图位置

然后ecx的值最终还是来自于ecx,但是这里按CTRL+F9 反不动了,所以现在可以宣布通过硬件断点访问也没找到这个地址的基址

然后回到CE,看看CE中有那些我位置访问了坐标,首先玻璃OD,右击OD选择Detach,如下图

然后回到CE,右击地址选择找出是什么访问了这个地址

然后发现只有两个位置访问了坐标,这俩位置上方都分析过了,都找不到,这怎么办?

然后换个思路,现在有一件事,这个游戏中坐标数据会有多个地址存放,通过CE可以看出有两个位置存放一个是怪物地址+0x18C位置一个是通过CE新扫描出来的(修改数据会让怪物瞬移),怪物会存在多个也就是怪物列表,然后一般为了性能在同步坐标数据的时候它肯定不会先从怪物数组里一个一个找,找到之后再通过某些条件去坐标列表(坐标列表指的是上方通过访问断点找的那个)找怪物对应的坐标,所以它肯定会在怪物列表中记录了坐标列表的数据,所以接下来,来到怪物对象里找一找看看有没有5D6948C相近的数据

现在怪物列表是0x13fb6000

然后修改坐标怪物瞬移的地址是0x5D6948C

再次来到OD,鼠标单击1位置,然后输入怪物地址,然后点确定

然后双击下图红框位置,让它显示偏移

然后在怪物地址偏移0xA8位置找到了与0x5D6948C相近的值,0x5D69480

分别是x坐标、y坐标、z坐标,z坐标是高度,这些坐标修改可以让怪物瞬移,也就能实现吸怪了


img

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

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

相关文章

VMware vSphere ESXi确定vmnic*网络适配器用途的方法

近期有VMware vSphere ESXi宿主机从VMware ESXi, 6.7.0, 17499825版本重装为VMware ESXi, 7.0.3, 21930508后,发现对应网卡的物理适配器名vmnic*发生变化,本文记录了如何确定网络适配器用途的方法。 一、问题描述 原宿主机为ESXi, 6.7.0, 17499825&am…

【YOLO5 项目实战】(4)红外目标检测

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO5 项目实战】(1)YOLO5 环境配置与测试 【YOLO5 项目实战】(2)使用自己的数据集训练目标检测模型 【YOLO5 项目实战】(3)P…

2、Unity【基础】Mono中的重要内容

Unity基础 MonoBehavior中的重要内容 文章目录 Mono中的重要内容1、延迟函数1、延迟函数概念2、延迟函数使用3、延迟函数受对象失活销毁影响思考1 利用延时函数实现计时器思考2 延时销毁 2、协同程序1、Unity是否支持多线程2、协同程序概念3、协同程序和线程的区别4、协程的使用…

西门子PLC12001500变量标签导入昆仑通态触摸屏

目录 新建DB测试数据块导出DB数据导出结构体类型触摸屏导入标签 新建DB测试数据块 新建DB1数据块,里面包含普通bool数据类型,以及结构体数据类型 同时需要取消优化的块访问 导出DB数据 DB1数据块右击——从块生成源——仅所选块 这里要注意的是导出文…

悟空降世 撼动全球

文|琥珀食酒社 作者 | 积溪 一只猴子能值多少钱? 答案是:13个小目标 这两天 只要你家没有断网 一定会被这只猴子刷屏 它就是咱国产的3A游戏 《黑神话:悟空》 这只猴子到底有多火? 这么跟你说吧 茅台见了它都…

备战秋招60天算法挑战,Day22

题目链接: https://leetcode.cn/problems/missing-number/ 视频题解: https://www.bilibili.com/video/BV1HS42197Hc/ LeetCode 268.丢失的数字 题目描述 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组…

微服务注册中心

目录 一、微服务的注册中心 1、注册中心的主要作用 (1)服务发现 (2)服务配置 (3)服务健康检测 2、 常见的注册中心 二、nacos简介 1、nacos实战入门 (1)搭建nacos环境 &am…

Vue插值:双大括号标签、v-text、v-html、v-bind 指令

创建应用程序实例后,需要通过插值进行数据绑定。数据绑定是 Vue.js 最核心的一个特性。建立数据绑定后,数据和视图会相互关联,当数据发生变化时,视图会自动进行更新。这样就无须手动获取 DOM 的值,使代码更加简洁&…

外部环境连接kafka

修改配置文件外部环境连接kafka 1、kafka的docker官方镜像地址2、kafka官方介绍的三种连接方式3、方式一:Default configs默认配置4、方式二:File input(文件输入:外部配置文件替换docker容器内的配置文件)4.1、首先查…

自存实践本地访问 nginx放前端打包好的项目

nginx 部署前端项目_哔哩哔哩_bilibili 将打包好的dits文件放到 配置nginx.conf文件的location 启动命令 start nginx.exe 输入localhost即可访问打包好的项目 nginx的特点 1.静态资源 2.转发 设置代理转发请求 关闭nginx .\nginx.exe -s quit

分享从零开始学习网络设备配置--任务6.2 实现网络设备的远程管理

任务描述 某公司的网络管理员小赵负责公司办公网的管理工作,熟悉了公司内部设备运行情况,每天都需要保障公司内部网络设备的正常运行,同时进行办公网的日常管理和维护工作。 在安装办公网中,路由器和交换机放置在中心机房&…

【生日视频制作】教师节中秋节国庆节红色直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】

红色直升飞机生日视频制作教程AE模板改文字广软件告生成器素材 怎么如何做的【生日视频制作】教师节中秋节国庆节红色直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频…

【Python机器学习】NLP概述——词序和语法

词的顺序很重要,那些在词序列(如句子)中控制词序的规则被称为语言的语法(也被称为文法)。这是之前的词袋或词向量例子中所丢弃的信息。在大多数简短的短语甚至许多完整的句子中,上述词向量近似方法都可以奏…

电脑硬盘坏了怎么恢复数据?

在数字化时代,电脑硬盘作为存储核心,承载着我们的工作文档、学习资料、家庭照片以及无数珍贵的回忆。然而,硬盘作为机械设备,也有其寿命和脆弱性,一旦出现故障,数据恢复便成为了一个紧迫而棘手的问题。本文…

Centos7 message日志因dockerd、kubelet、warpdrive、containerd等应用迅速增长

问题:公司服务器在部署一套业务后,message日志记录大量的dockerd、kubelet、warpdrive、containerd应用日志,每天增加2G大小的日志 解决方案: 前期吐槽下:发现某个帖子,需要会员或者花钱才能看&#xff0c…

AfuseKt v1.3.5 — 打造自己的视频库,可刮削

AfuseKt是一款功能全面的安卓视频播放器,支持从阿里云盘、Alist、WebDAV、Emby到Jellyfin等多个平台直接播放视频。注册简单,一次邮箱登记即可畅享所有功能,包括自动刮削和海报墙展示。无论你是电影迷还是系列剧的忠实粉丝,AfuseK…

Elasticsearch-关键词随机查询(8.x)

目录 一、查询语句 二、Java代码实现 基础介绍: ES自定义评分机制:function_score查询详解-阿里云开发者社区ES自定义评分机制:function_score查询详解https://developer.aliyun.com/article/1054571 开发版本详见:Elasticsearch-经纬度查询(8.x-半径…

npm安装时一直在idealTree:npm: sill idealTree buildDeps卡住不动解决方法

npm安装xmysql时一直idealTree:npm: sill idealTree buildDeps卡住不动 问题解决,如下图所示 解决方法: 1、查看.npmrc位置,并去目录中删掉.npmrc文件 --在cmd(DOS页面)界面执行下述指令,可查看 .npmrc 文…

数学建模起步感受(赛前15天)

0基础直接上手数模,因为大一!年轻就是无所畏惧!开个玩笑,因为数模比赛比一年少一年… 抱着不打也是浪费的态度,我开始着手准备 首先python啥也不会,知道有元组这玩意… 仅仅在刷软考题的时候遇到python选择…

单域名SSL证书申请三步法

申请单域名SSL证书,确保您的网站安全可信,只需简单三步: 选择证书类型与提供商:首先,确定您需要的单域名SSL证书类型,如DV(域名验证)证书。接着,选择一个信誉良好的证书提…