当前位置: 首页 > news >正文

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

相关文章:

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

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…...

Redis地理位置相关应用

下面是一个结合 MySQL 数据库和 Redis 的地理位置服务示例,包含表结构、PHP 代码和 Redis 操作,用于处理基于地理位置的数据存储和查询。 1. 创建 MySQL 数据库表 首先,创建一个用于存储位置信息的 MySQL 表,如下所示&#xff1…...

优化WAN流量:如何通过调整系统设置降低企业网络成本

一、症状与问题背景 当电脑显示空闲状态时,如果满足以下条件,第二拨号链接可能会意外激活: 您正在使用基于 Microsoft Windows 的计算机,该计算机连接到远程网络并且是 Active Directory 域服务 (AD DS) 域的成员。 您通过二级…...

Java-HttpHeaders请求头或响应头

HttpHeaders 是 Spring Framework 中的一个类,用于封装 HTTP 头部信息。它提供了一种方便的 方式来设置 HTTP 请求头和处理 HTTP 响应头。下面分别介绍如何使用 HttpHeaders 来设置请求 头和处理响应头。 设置请求头 在发送 HTTP 请求时,可以通过 HttpHeaders 设置各种请…...

Elasticsearch高阶查询

Elasticsearch高阶查询 文章目录 Elasticsearch高阶查询相关性和相关性算分相关性 (Relevance)什么是TF-IDFBM25explain关键字Boosting如何通过Boost控制想要的文档排在前面? 布尔查询(bool Query)查询语法语法格式 单字符串多字段查询三种场…...

【流媒体】RTMPDump—RTMP_Connect函数(握手、网络连接)

目录 1. RTMP_Connect函数1.1 网络层连接(RTMP_Connect0)1.2 RTMP连接(RTMP_Connect1)1.2.1 握手(HandShake)1.2.2 RTMP的NetConnection(SendConnectPacket) 2.小结 RTMP协议相关&am…...

通过https方式访问内网IP

单位要做个用浏览器扫二维码的功能。我先在本地测试一直不成功,后来放到服务器上运行成功了。比较了一下,服务器上是https,但是本地没有证书。我问了一下信安的同事,要求二维码必须在本地扫描,不能上公网。所以只好在本…...

flutter 键盘弹出 都会重新Build

原因是调用MediaQuery.of(context)后,点击TextField组件时会导致调用build方法。 解决方法:在Scaffold组件的body嵌套Builder组件,然后设置一个BuildContext变量,将Builder组件中的context传递给BuildContext变量,然后…...

RedisDistributedLock 分布式锁

设计一个简单的 RedisDistributedLock 类,实现单例模式,并包含基本的锁定机制。这个类将使用 Redis 来管理锁,确保在分布式系统中资源的同步访问 import redis.clients.jedis.Jedis;public class RedisDistributedLock {private static Redi…...

Java之包装类

Java中的包装类(Wrapper Classes)是基本数据类型的对象包装类。Java为每个基本数据类型(如int、char等)提供了对应的包装类,使得基本类型可以被当作对象来处理。这些包装类位于java.lang包中。 包装类的用途 对象化&a…...

Linux - 权限

文章目录 一、用户二、文件 一、用户 1、Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 。 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“…...

免费图形化nginx管理工具nginxWebUI

nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 配置好后可一建生成nginx.conf文件, 同时可控制nginx使用此文件进行启动与重载, 完…...

编程上的挫折不可怕,可怕的是你畏惧了

如何克服编程学习中的挫折感 编程学习之路上,挫折感就像一道道难以逾越的高墙,让许多人望而却步。然而,真正的编程高手都曾在这条路上跌倒过、迷茫过,却最终找到了突破的方法。那么,我是如何在Bug的迷宫中找到出口的&…...

docker逃逸手法

docker逃逸手法 基本docker操作docker 命令dockerfilesDocker Compose漏洞利用容器漏洞 基本docker操作 docker 命令 # docker拉取 docker pull # 指定版本拉取 docker pull ubuntu:22.04# 显示镜像可执行的操作 docker image # 列出存储在本地系统上的所有图像 docker image…...

3 pytest Fixture

3 pytest Fixture 3.1 通过 conftest.py 共享 fixture3.2 使用 fixture 执行配置及销毁逻辑3.3 使用 --setup-show 回溯 fixture 的执行过程3.4 使用 fixture 传递测试数据3.5 使用多个 fixture3.6 指定 fixture 作用范围3.7 使用 usefixtures 指定 fixture3.8 为常用 fixture …...

pinctl 和 gpio子系统驱动

一.设备树中添加pinctl节点模板 1.创建对应的节点 同一个外设的 PIN 都放到一个节点里面,打开 imx6ull-14x14-evk.dts,在 iomuxc 节点 中的“imx6ul-evk”子节点下添加 “pinctrl_test” 节点。添加完成以后如下所示: pinctrl_test:test_g…...

RocketMQ消息堆积了怎么解决?

RocketMQ 的消息堆积,一般都是因为客户端本地消费过程中,由于消费耗时过长或消费并发度较小等原因,导致客户端消费能力不足,出现消息堆积的问题。 当线上出现消息堆积的问题时,一般有以下几种方式来解决: 增加消费者…...

C++第十二弹 -- STL之list模拟实现

文章索引 前言模拟实现list1. ListNode节点类2. list的迭代器封装3. 反向迭代器4. list类的模拟实现测试代码 list的反向迭代器总结 前言 通过模拟实现可以让我们更加深刻的理解C底层STL的实现逻辑, 本篇就对list的底层进行模拟实现. 博客主页: 酷酷学!!! 点击关注 共同进步!…...

Destiny of Gods首轮测试正式开启,参与玩家数量突破10万

天神风云,波澜再兴,GameFi链游聚合平台Destiny of Gods首款同名数字卡牌回合制游戏首轮测试定档8月20日20:00(GMT8),现已正式开启! 这是一个由人、游灵和神灵共存的世界,历经蛮荒时期的纷争与信…...

QT聊天室基于Tcp

server.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),server(new QTcpServer(this)) // 给服务器指针对象实例化空间{ui->setupUi(this); }Widget::~Widget() {delete ui; }…...

公开课观后感:密歇根大学python for everyone

从2024年1月17日到2024年8月20日,终于将密歇根大学的python for everyone的python公开课跟完。站在一月份规划的时刻来看,比我想象中花费的时间更多,我当时肯定没有想到要花上整整七个月的时间才能将这个公开课的内容看完,毕竟这个…...

goweb框架-gin

文章目录 Gin框架概览Gin框架的特点Gin框架的安装和基本使用安装基本使用 路由系统路由的基本概念Gin框架路由的特点 Radix Tree(基数树)基数树的定义和原理基数树在Gin框架中的应用节省空间的优化动态路由和通配符处理 路由树的构建注册路由的过程路由树…...

2024年接口测试高频面试题及答案

1. 什么是接口测试? •接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求 •测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系 2. 为什么要做接口…...

ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(8)

接前一篇文章:ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(7) 前边几回分析了笔者在MQTT测试时所遇到的问题: 最终定位到了是由于components\components\tcp_transport\transport_ssl.c的base_poll_write函数中调用的select函数超时返回…...

Linux: 忘记密码的解决方法,passwd

https://www.redhat.com/sysadmin/recover-root-passwd 这里的方法很简单,就是通过console进去,添加一个启动参数,加载sysroot,然后用passwd命令修改密码。这个是RHEL7适用。 https://access.redhat.com/solutions/1192 这个是提…...

36. 有效的数独【 力扣(LeetCode) 】

一、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图…...

机器学习中的没有免费午餐定理

嘿,各位机器学习的爱好者们!今天,让我们一起深入探讨机器学习中那个神秘而又重要的概念——没有免费午餐定理。 一、定理引入:探索算法森林的钥匙 在广阔无垠的机器学习领域中,免费午餐定理就如同一把神奇的钥匙&…...

高级java每日一道面试题-2024年8月21日-框架篇[Spring篇]-使用IOC容器应该注意哪些?

如果有遗漏,评论区告诉我进行补充 面试官: 使用IOC容器应该注意哪些? 我回答: 1. 理解IOC的基本概念 控制反转:在传统的编程模式中,程序会主动控制依赖关系的创建和管理。而在IoC容器中,这种控制权被反转给了容器本身。程序员只需要声明…...

LLM训练推理相关概念

1. 有监督微调(Supervised Fine-Tuning)与指令微调(Instruction Fine-Tuning)对模型参数的影响 **有监督微调(Supervised Fine-Tuning, SFT)和指令微调(Instruction Fine-Tuning, Instruct-Tun…...

IP in IP 协议

IP in IP 是一种多重IP协议,即:客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上,在由具体的主机作为路由进行转发的协议。 例如: IP in IP帧协议结构为,第一层为发送到IP in IP 路由主机的报文&…...

django网站开发过程/网络推广外包

该环境为11g,rac。processes值为2000,因为业务增大,改为6000,需要重启数据库生效 查看processes Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clu…...

网站维护报价单/爱网

以上一篇CodeFirst生成代码为基础&#xff0c;继续探索使用方式。 引入Repository模式&#xff0c;定义最简单的IRepository接口&#xff0c;仅包含增删改查接口&#xff0c; 1 public interface IRepository<T> 2 where T : class 3 { 4 IQueryable<T>…...

专业网站开发企业/百度提交入口的注意事项

13.怎样自学Struts2之Struts2本地化[视频]之前写了一篇“打算做一个视频教程探讨怎样自学计算机相关的技术”,优酷上传不了&#xff0c;仅仅好传到百度云上&#xff1a;http://pan.baidu.com/s/1kTDsa95这节课讲的过程中碰到了些问题&#xff0c;同一时候处理问题费了些时间&am…...

深圳南山企业网站建设/网络营销的特点有哪些?

雅思考试到底是选择纸笔还是机考&#xff1f;很多同学纠结在笔试与机考两难中&#xff0c;还在担心雅思全面机考时代的来临。但说真的&#xff0c;雅思全面机考正悄悄走来&#xff0c;你不知道它什么时候来但知道它一定会来&#xff0c;就像我们不知道下一次考试会不会涨价但知…...

山东疫情最新分布情况图/整站优化推广

https://www.cnblogs.com/cloudos/p/8308946.html zabbix的客户端 1、进入所有mysql本地服务器上的zabbix客户端创建脚本目录和文件[rooti-ynodsrbz ~]# cd /usr/local/zabbix-2.4.2/[rooti-ynodsrbz zabbix-2.4.2]# mkdir scripts[rooti-ynodsrbz zabbix-2.4.2]# cd scripts/[…...

做淘宝客网站需要多大带宽/查关键词

网慧天下科技为大家讲解网络建设&#xff0c;希望大家能够喜欢。网站建设在经过一番努力之后就可以开始慢慢准备上线工作了&#xff0c;但是在上线之前必须要先对网站做一次整体测试工作&#xff0c;具体测试哪些方面可能有些站长对此比较迷茫&#xff0c;当然最好的测试方法就…...