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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++容器之list基本使用

目录 前言 一、list的介绍? 二、使用 1.list的构造 2.list iterator的使用 3.list capacity 🥇 empty 🥇size 4.list element access 🥇 front 🥇 back 5.list modifiers 🥇 push_front 🥇 po…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布 VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、IEIT SYSTEMS (浪潮信息)、Cisco …

Xshell7下载及服务器连接

一、Xshell-7.0.0164p、Xftp 7下载 1.1、文件下载 通过网盘分享的文件:xshell 链接: https://pan.baidu.com/s/1qc0CPv4Hkl19hI9tyvYZkQ 提取码: 5snq –来自百度网盘超级会员v2的分享 1.2、ip连接 下shell和xftp操作一样:找到文件—》新建—》名称随…

HTML增加文本复制模块(使用户快速复制内容到剪贴板)

增加复制模块主要是为了方便用户快速复制内容到剪贴板&#xff0c;通常在需要提供文本信息可以便捷复制的网页设计或应用程序中常见。以下是为文本内容添加复制按钮的一个简单实现步骤&#xff1a; HTML结构&#xff1a; 在文本旁边添加一个复制按钮&#xff0c;例如 <butto…

【C++】set容器和map容器的基本使用

一、序列式容器和关联式容器 1、STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;这些容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间一般没有紧密的关联关系&#xff0c;…

第L2周:机器学习|线性回归模型 LinearRegression:2. 多元线性回归模型

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 任务&#xff1a; ●1. 学习本文的多元线形回归模型。 ●2. 参考文本预测花瓣宽度的方法&#xff0c;选用其他三个变量来预测花瓣长度。 一、多元线性回归 简单线性回归&#xff1a;影响 Y 的因素唯一&…

1、Spring Boot 3.x 集成 Eureka Server/Client

一、前言 基于 Spring Boot 3.x 版本开发&#xff0c;因为 Spring Boot 3.x 暂时没有正式发布&#xff0c;所以很少有 Spring Boot 3.x 开发的项目&#xff0c;自己也很想了踩踩坑&#xff0c;看看 Spring Boot 3.x 与 2.x 有什么区别。自己与记录一下在 Spring Boot 3.x 过程…

Linux ssh 免密登录配置

参考资料 ~/.ssh/configについて~/.ssh/configを使ってSSH接続を楽にする.ssh/configファイルでSSH接続を管理する 目录 一. 密钥生成1.1 生成工具1.1.1 OpenSSH1.1.2 Git 1.2 生成命令1.3 注意事项1.4 解决路径中的用户名乱码 二. 将公钥配置到目标服务&#xff0c;免密登录2…

如何在 Windows 10 上恢复未保存/删除的 Word 文档

您是否整夜都在处理重要的 word 文件&#xff0c;但忘记保存它&#xff1f;这篇文章是给你的。在这里&#xff0c;我们将解释如何恢复未保存的 word 文档。除此之外&#xff0c;您还将学习如何恢复已删除的 word 文档。 从专业人士到高中生&#xff0c;每个人都了解丢失重要 W…

从HarmonyOS Next导出手机照片

1&#xff09;打开DevEco Studio开发工具 2&#xff09;插入USB数据线&#xff0c;连接手机 3&#xff09;在DevEco Studio开发工具&#xff0c;通过View -> Tool Windows -> Device File Browser打开管理工具 4&#xff09;选择storage -> cloud -> 100->fi…

JDBC 概述

JDBC 概述 JDBC的基本概念与功能JDBC的工作原理JDBC的组件与类JDBC的类型与特性JDBC的应用场景 JDBC&#xff08;Java Database Connectivity&#xff09;即Java数据库连接&#xff0c;是Java编程语言用于与数据库进行连接和操作的API&#xff08;应用程序编程接口&#xff09;…

Linux:深入理解冯诺依曼结构与操作系统

目录 1. 冯诺依曼体系结构 1.1 结构分析 1.2 存储结构分布图 2. 操作系统 2.1 概念 2.2 如何管理 2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构 1.1 结构分析 不管是何种计算机&#xff0c;如个人笔记本电脑&#xff0c;服务器&#xff0c;都是遵循冯诺依曼结构。…

注册安全分析报告:科研诚信查询平台无验证方式导致安全隐患

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

【Linux】进程管理:状态与优先级调度的深度分析

✨ 山海自有归期&#xff0c;风雨自有相逢 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1…

SQL:函数以及约束

目录 介绍 函数 字符串函数 数值函数 日期函数 流程函数 约束 总结 介绍 说到函数我们都不陌生,在C,C,java等语言中都有库函数,我们在平时也是经常使用,函数就是一段代码,我们既可以自定义实现,又可以使用库里内置的函数;从来更加简洁方便的完成业务;同样的在SQL中也有…

从0到1深入浅出构建Nest.Js项目

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用JavaScript 的渐进增强的能力&#xff0c;使用并完全支持 TypeScript &#xff08;仍然允许开发者使用纯 JavaScript 进行开发&#xff09;&#xff0c;并结合了 OOP &#xff08;面向对…

Spring Boot技术栈:打造高效在线商城

2 相关技术 2.1 Springboot框架介绍 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring…

sentinel原理源码分析系列(三)-启动和初始化

本文是sentinel原理源码分析系列第三篇&#xff0c;分析sentinel启动和初始化 启动/初始化 sentinel初始化分两块&#xff0c;静态初始和适配器(包括aop) 静态初始 1. Root EntranceNode 如果我们用一栋楼类比资源调用&#xff0c;root EntranceNode好比一栋楼的大门&…

vulnhub-unknowndevice64 2靶机

vulnhub&#xff1a;https://www.vulnhub.com/entry/unknowndevice64-2,297/ 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.81.9&#xff0c;扫描端口 啥啊这都是&#xff0c;详细扫描一下 5555是adb&#xff0c;6465是ssh&#xff0c;12345看样子应该是…

简单的springboot 编写Socket服务接口

简单的springboot 编写Socket服务接口 1.需求 我们项目中有部分老接口为票据接口&#xff0c;其中实现为java socket形式进行实现&#xff0c;但是其中大部分信息都是原始公司封装的包进行实现的&#xff0c;想要修改非常费劲&#xff0c;所以此处简单了解了一下socket&#…