19.第二阶段x86游戏实战2-寻找寻路call

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

本次游戏没法给

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

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

工具下载:

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

提取码:6tw3

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

上一个内容:18.第二阶段x86游戏实战2-探索释放技能call

上一个内容中找到了,释放技能调用的函数,本次找一下寻路调用的函数

下方采用通过发送数据包的位置找寻路,找寻路的方式还有通过人物状态,之前走路的状态是2,站着不动的状态是0,打坐的状态是6可以跟踪这些状态的写入去追,然后还可以通过人物基址去追

坐标的特征:十六进制以4开头或以C开头的一般就是坐标,看多了也就能认识了

先说这个游戏通过发送数据包的位置追寻路追不到,因为它使用了循环,它通过修改状态来实现走路,意思是0表示不走路,1表示走路,一个线程专门写走路,一个线程专门读取是否走路执行走路逻辑

然后开始验证上面写的字,打开游戏,打开OD,并使用OD附加到游戏

首先来到发送数据包的位置

还是鼠标单击下图红框位置,然后鼠标移动到游戏中准备触发走路,然后按F2紧接着用鼠标触发走路

断下来之后双击取消断点

按CTRL+F9之后

按CTRL+F9之后

按CTRL+F9之后

按CTRL+F9之后

按CTRL+F9之后,来到非游戏模块(非Game模块)

按CTRL+F9之后,又会来到Game模块

按CTRL+F9之后又会来到非Game模块,这是一个递归循环(不知道递归循环什么意思没事,就是一个循环,递归是循环的一种,搞懂需要写C++代码,C++基础里的东西,后面有机会写一个递归循环一看就能懂)

然后继续老套路,来到zl3层,看看它是否除了走路会触发断点其它都不会触发,下图来到zl3层,对它打断点发现只有走路才能触发断点

然后来到zl4层,我们要找最外侧的那一个,所以还要往上找,所以来到zl4层,对zl4打断点发现它不走路也会断下来,所以zl3层是最外侧

然后来到zl3层,查看它的参数,ecx

然后按F8,执行call 0x25EFD0,发现栈没有变化,所以call 0x25EFD0没有参数(之前看参数是点进去看retn 后面跟不跟数字,通过数字判断函数有几个参数,本次是第二种看参数的方式,如果有参数栈一定会变的)

然后通过多次断点观察,ecx的值不变,这个值游戏重启了肯定会变,然后需要找ecx的值哪来的,需要找到它的基址,如下图ecx的值来自于esi,esi的值来自于ecx,ecx的值来自于上一层

通过断点CTRL+F9来到上一层,ecx来自于esi+0x154位置,esi的值还是来自于ecx,ecx又来自于上一层,所以继续断点CTRL+F9找

CTRL+F9之后就来到那个循环了,在循环里找ecx的值没法找,因为不知道这个循环要循环几次才能出去,能找到也是运气好,所以这样找不现实,需要换个方式找

然后再回到zl3,现在怎么办?往上是循环没法找ecx的值,这时候怎么办?不信没法找的自己去试试一找一个不知声,这里补充一点,当前坐标和目的地坐标在zl2附近可以看到取值

现在有一个问题,现在在一个循环里,为什么zl4会不断的执行,上图zl3位置只有走路的时候才执行?然后在zl3函数头部打断点,会发现zl3头部也是会不断的断下来

然后在zl3断点住之后通过按F8,看看是为什么zl3位置不走路不执行,然后会发现下图两个红框位置,它通过对比esi+0x130位置的值与0做比较je指令是相等就跳转,这里注意马上就要验证刚开始写的东西了

通过CTRL+F9往上找发现上面是循环,并没有给esi+130位置赋值的代码,esi+130位置的值是从别的地方来的(肯定不是从循环里来的)跳出循环的方式,在下图红框位置下硬件写入断点

单字节的硬件写入

然后它就跳转到了新的地方

记录偏移0xBEFBB

本次到这就结束了,下次接着上图位置继续,这里补充一个东西,如果没有下图红框的东西

它就在调试-》硬件断点里打开

删除硬件断点

这里提一点,当前坐标和目的地坐标在zl2附近可以看到取值,如下图,从ebp来的,这里还是不好搞,最好的call应该是给它一个目的地坐标就可以


img

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

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

相关文章

什么是reactor以及其三种版本

写在前面 本文来看下什么是reactor以及其三种版本。 1:什么是reactor以及其三种版本 为了更好的理解什么是reactor,我们结合现实生活中的例子来看下。 翠花是个貌美如花的姑娘,人称赛东施,她的梦想是嫁给王子,可是天…

hystrix微服务部署

目录 一.启动nacos和redis 1.查看是否有nacos和redis 二.开始项目 1.hystrix1工程(修改一下工程的注册名字) 2.运行登录nacos网站查看运行效果(默认密码nacos,nacos) 3.开启第二个项目 hystrix2工程 4.关闭第二个项目 hyst…

SpringBoot学习笔记(2)

1.静态文件访问 使用IDEA创建Spring Boot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。 如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。 1.1直接访问 在application.properties中…

Coze:如何使用主页对话框?

你好,我是三桥君 我们今天要介绍的功能模块是“主页对话框”。 目录 访问官网 登录首页 基本功能 主页对话框 第一个功能:如何与自己收藏的机器人进行对话? 第二个功能:如何请求主页对话框的机器人帮助创建一个新的机器人&#x…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第十八章 Linux编写第一个自己的命令

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

【算法系列-数组】螺旋矩阵(模拟)

【算法系列-数组】螺旋矩阵(模拟) 文章目录 【算法系列-数组】螺旋矩阵(模拟)1. 螺旋矩阵II(LeetCode 59)1.1 思路分析🎯1.2 解题过程🎬1.3 代码示例🌰 2. 螺旋矩阵(LeetCode 54)2.1 思路分析🎯2.2 解题过程🎬2.3 代码…

如何使用ssm实现基于web的网站的设计与实现+vue

TOC ssm756基于web的网站的设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范…

极端天气道路目标检测数据集 3400张 带标注 VOC YOLO 6类

分类名: (图片张数,标注个数) car: (3210, 13654) truck: (1168,1629) per son: (1517,4359) bicyc le: (334, 589) bus: (381, 439) motorcycle: (164, 214) 总数: (3404, 20884) 总类(nc): 6类 极端天气道路目标检测…

09_OpenCV彩色图片直方图

import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineimg cv2.imread(computer.jpeg, 1) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img) plt.show()plot绘制直方图 plt.hist(img.ravel(), 256) #ravel() 二维降一维 256灰度级…

pycharm汉化插件无法使用也无法卸载的解决方法

pycharm汉化插件无法使用也无法卸载的解决方法 本文目录: 一、故障描述 二、故障解决 零、时光宝盒 学习没有可能一帆风顺,我们都是在不断遇到的各种突发问题,不断努力解决的过程中成长。 前几天,我发现家里的网络晚上12点左右开…

初识算法 · 双指针(3)

目录 前言: 和为s的两数之和 题目解析: ​编辑 算法原理: 算法编写: 三数之和 题目解析 算法原理 算法编写 前言: 本文通过介绍和为S的两数之和,以及三数之和,对双指针算法进行深一步…

欧科云链OKLink相约TOKEN2049:更全面、多元与安全

过去几日,OKLink 与全球 Web3 从业者与爱好者们相约狮城。在多场激动人心的活动上分享了我们的产品进展、有关于链上数据的专家观点以及打磨产品的经验。同时也听到了很多来自行业的宝贵声音。跟随我们的脚步,捕捉这充实一周的精彩瞬间: 1、…

netty之基础aio,bio,nio

前言 在Java中,提供了一些关于使用IO的API,可以供开发者来读写外部数据和文件,我们称这些API为Java IO。IO是Java中比较重要知识点,且比较难学习的知识点。并且随着Java的发展为提供更好的数据传输性能,目前有三种IO共…

5G NR SSB简介

文章目录 SSB介绍SSB波束扫描 SSB介绍 5G NR 引入了SSB 这个概念,同步信号和PBCH块(Synchronization Signal and PBCH block, 简称SSB) 它由主同步信号(Primary Synchronization Signals, 简称PSS)、辅同步信号(Secondary Synchronization Signals, 简称SSS)、PBCH…

【分页】Spring Boot 列表分页 + javaScript前台展示

后端: 准备好查询实体与分页实体 1、分页工具实体 package com.ruoyi.dms.config;import com.alibaba.nacos.api.model.v2.Result; import lombok.Data;import java.io.Serializable; import java.util.List;/*** author 宁兴星* description: 列表返回结果集*/ …

【10】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-泛型基础全解(泛型函数、泛型接口、泛型类)及参数、接口补充

序言: 本文详细讲解了关于ArkTs语言中的泛型,其中包含泛型函数、泛型接口、泛型约束、泛型类及其中参数的使用方法,补充了一部分接口相关的知识,包括接口的继承和具体实现,也写到了一些边边角角的小知识,剩…

详细介绍:API 和 SPI 的区别

文章目录 Java SPI (Service Provider Interface) 和 API (Application Programming Interface) 的区别详解目录1. 定义和目的1.1 API (Application Programming Interface)1.2 SPI (Service Provider Interface) 2. 使用场景2.1 API 的应用场景2.2 SPI 的应用场景 3. 加载和调…

jmeter学习(1)线程组与发送请求

1、线程组 执行顺序 :setUp线程组 > 线程组 > tearDown线程组 2、 发送请求 可以发送http、java、dubbo 请求等 下面讲解发送http 1)Http请求默认值 作用范围是该线程组下的所有HTTP请求,如果http请求设置的与默认值冲突&#xff0…

PC端微信小程序如何调试?

向往常一样运行开微信小程序开发者工具 如果只弹出pc端小程序,没有出现调试的界面:点击胶囊按钮的三个…选择重新进入小程序 即可依次展开相应的功能调试,改完代码没反应再刷新看看,再没反应就再次重新点击编译并自动调试。

【学习笔记】手写 Tomcat 六

目录 一、线程池 1. 构建线程池的类 2. 创建任务 3. 执行任务 测试 二、URL编码 解决方案 测试 三、如何接收客户端发送的全部信息 解决方案 测试 四、作业 1. 了解工厂模式 2. 了解反射技术 一、线程池 昨天使用了数据库连接池,我们了解了连接池的优…