48.第二阶段x86游戏实战2-鼠标点击call

news2024/12/23 20:33:01

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

本次游戏没法给

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

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

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

提取码:6tw3

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

上一个内容:47.第二阶段x86游戏实战2-解决窗口获取到焦点会发送数据包的问题

上一个内容里准备本次的内容,但是发现游戏添加了一个窗口获取焦点就发送数据包的机制,所以上一个内容里就写了如何绕过这种机制

首先打怪的操作

1.使用鼠标左键单击怪物角色会走过去,然后打怪

2.使用鼠标右键单击怪物选中怪物,然后按技能,然后如果是近程技能就走过去打怪,如果是远程就走到远程攻击范围然后打怪

然后怎么找?找的方式是在明文包位置触发打怪,然后一层一层的往上反,一直反倒没法反了位置(没法反的原因可能是循环),这样就可以找到鼠标点击的call了,有了思路就开始找

首先在下图红框位置下条件断点,条件是 [[esp]]!=0x0553,也就是把心跳(点击游戏窗口发送的数据包)排除

下好断点之后,进入游戏进行打怪,这里要注意下断点之前记得先走到怪物身边,这样可以方式断点被寻路触发,如下图通过打怪触发断点

取消断点,然后按CTRL+F9

CTRL+F9之后,来到下图,这里是上一个内容找的第三层心跳位置,也就是最早找到明文包的位置

CTRL+F9之后,来到下图位置,从下图位置开始就进入了鼠标单击怪物打怪的流程了

继续CTRL+F9

继续CTRL+F9

继续CTRL+F9

继续CTRL+F9

继续CTRL+F9

继续CTRL+F9

到了第八层再按CTRL+F9代码就跑起来了,没再断了,这说明鼠标单击怪物已完成,然后鼠标点击call就在这8层当中了,然后可以开始分析了

首先来到第4层,怎么去第4层?单击下图红框位置

然后就可以看到一路写的注释了,然后找到打怪44鼠标左键双击它就可以来到第4层了

然后来到第4层之后设置断点

然后发现第4层只要鼠标一点击游戏界面就会触发断点,所以进入第3层试试

然后来到第三层,如下图,然后发现第三层走路就会断,所以再进入第2层看看

然后到了第2层发现只有单击怪物的时候才会断,所以现在找到了鼠标单击打怪的call,然后观察它的入参

然后它的入参有两个,第一个参数是0x13B,第二个入参是0

然后换了一个怪物它的入参是,第一个参数是0x60,第二个入参是0,现在猜测第一个参数是附近怪物的id

然后这里会发现实际上鼠标call是第三层,上方可以看到第二层它就一个怪物id和0没别的了,它是打怪的call不是鼠标单击的call,所以第三层的call才是理想的,所以来到第三层观察它的参数,然后第三层也比较靠外可以有效防止被封禁账号,下图来到第三层,然后第三层只有鼠标点击场景的地面才会触发断点,其它按钮(比如打开背包、点击技能图标释放技能、小地图寻路)不会触发

然后通过观察第二层的ret位置发现第三层它的参数只有一个,如下图

然后它参数是一个0000FFFF,还有坐标

坐标需要用浮点数观察

如下图红框很明显的可以看出它是坐标,所以只需要再伪造一个eax就可以调用了

然后再看ecx的值,ecx的值看不出什么东西,然后接下来要进入第二层头部观察了

进入第二层之前发现,ecx和esi+0x60的值都来自于上方的0x155BEF4这个基址,所以进入第二层之前先把这个基址的特征码复制出来

复制完特征码之后,在下图位置打断点,然后使用打怪触发断点

取消断点,然后按F7

然后按完F7一进去就看到了下图红框位置,一个switch结构

如下图红框通过上图一路按F8走到的,然后它的,通过入参可以正面它是寻路call

寻路的call通过下图红框的基址就可以得到,入参就伪造一个坐标应该就可以了

寻路时的eax的值是0

然后使用打怪触发,它的eax的值是2

开箱子的eax是6

开箱子的call

然后上方第三层是通过走路触发的断点接下来再使用打怪触发一下看看它的入参,发现一个是附近怪物id,一个是一个内存地址,这个内存地址现在不知道是什么,本次先到这里下次再来看这个内存地址是什么


img

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

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

相关文章

Vue 学习随笔系列十五 -- 数组遍历方法

数组遍历方法 文章目录 数组遍历方法1. for 循环2. forEach (不会修改数组本身)3. map (不修改数组本身)4. some(不修改数组本身)5. every(不修改数组本身)6. filter(不修改数组本身)7. find(不修改数组本身)8. findIndex拓展 9. reduce(累加)拓展 1. fo…

FreeRTOS的列表与列表项

目录 1.为什么要学列表? 2.什么是列表和列表项? 2.1 列表 2.2列表项 2.3,迷你列表项 3.列表与列表项的初始化 3.1 列表初始化 3.2列表项初始化 4.列表项的“增删查”(插入、删除、遍历) 4.1列表项的插入 4.1.1…

数字IC后端教程之Innovus hold violation几大典型问题

今天小编给大家分享下数字IC后端实现Physical Implementation过程中经常遇到的几个hold violation问题。每个问题都是小编自己在公司实际项目中遇到的。 数字后端实现静态时序分析STA Timing Signoff之min period violation Q1: 在Innouvs postCTS时序优化的log中我们经常会看…

VS2022编译32位OpenCV

使用环境 Visual Studio 2022 OpenCV: 4.7.0 cmake: 3.30.2一、使用CMake工具生成vs2022的openCV工程解决方案 打开cmake,选择opencv的源代码目录,创建一个文件夹,作为VS工程文件的生成目录 点击configure构建项目,弹出构建设置…

企业生产环境-麒麟V10(ARM架构)操作系统部署Zookeeper单节点集群版

前言:ZooKeeper是一个分布式协调服务,它为分布式应用提供一致性服务,是Apache Hadoop的子项目。它被设计为易于编程,同时具有高性能和高可靠性。ZooKeeper提供了一个简单的接口和一些基本的文件系统操作,使得开发者能够…

vue3 中直接使用 JSX ( lang=“tsx“ 的用法)

1. 安装依赖 npm i vitejs/plugin-vue-jsx2. 添加配置 vite.config.ts 中 import vueJsx from vitejs/plugin-vue-jsxplugins 中添加 vueJsx()3. 页面使用 <!-- 注意 lang 的值为 tsx --> <script setup lang"tsx"> const isDark ref(false)// 此处…

深度学习服务器租赁AutoDL

1. 根据需要选择租用的显卡 算力市场 1.1 显卡选择 1.2 环境配置 2. 服务器使用 2.1 上传文件 2.2 调试环境 2.3 跑代码 python train.py && /usr/bin/shutdown # && /usr/bin/shutdown表示代码成功运行结束后&#xff0c;自动关机3. 省钱绝招 省钱绝招 …

IDEA部署AI代写插件

前言 Hello大家好&#xff0c;当下是AI盛行的时代&#xff0c;好多好多东西在AI大模型的趋势下都变得非常的简单。 比如之前想画一幅风景画得先去采风&#xff0c;然后写实什么的&#xff0c;现在你只需描述出你想要的效果AI就能够根据你的描述在几分钟之内画出一幅你想要的风景…

【大数据技术基础 | 实验十】Hive实验:部署Hive

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤&#xff08;一&#xff09;安装部署&#xff08;二&#xff09;配置HDFS&#xff08;三&#xff09;启动Hive 六、实验结果&#xff08;一&#xff09;启动结果&#xff08;二&#xff09;Hive基…

Flume1.9.0自定义Sink组件将数据发送至Mysql

需求 1、将Flume采集到的日志数据也同步保存到MySQL中一份&#xff0c;但是Flume目前不支持直接向MySQL中写数据&#xff0c;所以需要用到自定义Sink&#xff0c;自定义一个MysqlSink。 2、日志数据默认在Linux本地的/data/log/user.log日志文件中&#xff0c;使用Flume采集到…

Onlyoffice配置一 JWT認證

案例 使用官網給c# MVC的例子&#xff0c;主要在版本7.2之後&#xff0c;默認加入JWT認證&#xff0c;docker版本尚且可以在创建的时候使用默认的指令避开&#xff0c;但是在exe版本&#xff0c;即使配置为false&#xff0c;重启之后也会默认开启。 简单说一下如何配置 配置J…

ZeroSSL HTTPS SSL证书ACMESSL申请3个月证书

目录 一、引言 二、准备工作 三、申请 SSL 证书 四、证书选型 五、ssl重要性 一、引言 目前免费 Lets Encrypt、ZeroSSL、BuyPass、Google Public CA SSL 证书&#xff0c;一般免费3-6个月。从申请难易程度分析&#xff0c;zerossl申请相对快速和简单&#xff0c;亲测速度非…

MySql 日期周处理方式

MySql 日期周处理方式 最近在做数仓相关工作&#xff0c;最近遇到 几个问题&#xff0c; 1、计算指定日期是一年中的第几周&#xff0c;周一为周的第一天 2、计算周的开始时间&#xff0c;结束时间 3、计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周&…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中&#xff0c;BootLoader 的设计是非常关键的部分&#xff0c;它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数&#xff0c;以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求&#xff1a; 原生安卓 apk 要求嵌入到 uniapp 中&#xff0c;并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你&#xff0c;从 apk 到 aar&#xff0c;以及打包冲突到如何运行&#xff0c;期间我所遇到的问题都会 一 一 进行说明&#xff0c;相关版本以我文章内为…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符&#xff1a; 1. 通过开始菜单查找 打开 开始菜单&#xff08;点击屏幕左下角的 Windows 图标&#xff09;。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项&#xff08;具体取决于你的 Visu…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间&#xff0c;每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址&#xff08;也称“入口地址”&#xff09;。我们可以将函数的入口地址赋给一个指针变量&#xff0c;使该指针变量指向该函数。然后通过指针变量就可以调用这个…

(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024 论文地址&#xff1a;https://arxiv.org/abs/2405.14616 源码地址&#xff1a; https://github.com/kwuking/TimeMixer 背景 数据是有连续性&#xff0c;周期性&#xff0c;趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为&#xff…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录&#xff1a;★★★★尤其注意&#xff1a;引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springb…