32.第二阶段x86游戏实战2-遍历技能2(技能二叉树基址)

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

本次游戏没法给

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

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

工具下载:

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

提取码:6tw3

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

上一个内容:31.第二阶段x86游戏实战2-遍历技能1

上一个内容里找到了一个返回值,本次接着继续

首先来到下图位置,也就是上一个内容最后的位置

然后现在通过断点进入下图红框的call里分析

然后打断点

然后触发断点

然后注意栈红框所示是返回值,这里要注意,按了F7之后就要找谁给这个地址里的值进行的修改,然后取消断点按F7

然后按完F7之后

然后会发现又是一个二叉树遍历,现在的公式[edi+0x18]+0xC

然后一路F8,下图红框所示eax的值是入参,然后在下图红框位置把入参给的内存地址里的值进行了修改,修改成了ecx的值

现在的公式[ecx+0x18]+0xC,然后开始找ecx的值哪来的,如下图红框ecx的值来自于ecx,现在的公式[[ecx]+0x18]+0xC

如下图ecx的值有来自于ebp+0xC的地址,注意它是lea指令取的地址,所以现在的公式[[ebp+0xC]+0x18]+0xC

通过断点确定ebp+0xC的值又来自于ecx,现在的公式[ecx+0x18]+0xC,为什么不是[[exc]+0x18]+0xC这个公式?因为在下图红框位置取了ecx的值了,在上图位置又取了ecx的地址,在使用时又有一句mov ecx,dword ptr[ecx],这又把ecx的值取了出来,所以实际上最终用的还是ecx的值,所以公式是[ecx+0x18]+0xC,这里有多余的代码,汇编代码都是编译器生成的所以有这种多余代码很正常

ecx的值来自于二叉树现在的公式[eax+0x18]+0xC

然后最终的公式[[[[ecx]+0x4]+0x8]+0x18]+0xC

通过dd指令加断点可以看出公式是正常的,然后接下来就要找二叉树的基址,也就是ecx的值哪来的

然后按减号(-号)继续往上反,来到下图位置,也就是按F7之前的位置,看看ecx的哪来的

ecx的值来自于esi+0x2A44,如下图红框现在的公式 [[[[esi+0x2A44]+0x4]+0x8]+0x18]+0xC

esi的值来自于edi+0x10,现在的公式 [[[[[edi+0x10]+0x2A44]+0x4]+0x8]+0x18]+0xC

edi的值来自于ecx,如下图红框,所以需要开始CTRL+F9了

然后在下图红框位置打断点(其实也不用打断点了,上一个内容里已经找到过了,打断点要注意一件事如果当前代码有多个位置调用会,比如走路也会调用技能显示名也会调用它可能会CTRL+F9到走路里,这样就错了,做好的办法就是通过上一个内容的硬件访问断点找)

然后来到了下图位置

通过断点确定ecx来源

然后现在基址可以说是找到了,然后现在的公式[[[[[[[[0x105F008]+0x60]+0x148]+0x10]+0x2A44]+0x4]+0x8]+0x18]+0xC

通过dd指令验证,可以正常得到技能名字,现在就找到了技能列表

计算偏移本次Game.exe的基址是AC0000,偏移是0x59F008


img

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

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

相关文章

[数据集][目标检测]电力场景输电线路巡检检测数据集VOC+YOLO格式8667张50类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8667 标注数量(xml文件个数):8667 标注数量(txt文件个数):8667 标注…

双碳目标下储能产业新趋势与架构

0.引言 储能技术涉及能量的存储和利用,对电力系统平衡至关重要。它允许电力在需求时被储存和释放,对电力生产和消费方式产生重大影响。随着全球应对气候变化,风能和太阳能成为主要能源,但其不稳定性需要储能技术来提高可靠性。储…

在做题中学习(65):Z字形变换

6. Z 字形变换 - 力扣(LeetCode) 解法:模拟 思路:把原字符串从上到下依次读取到新字符串中,就需要看看Z字形变换时字符变化的规律。 以行数h4时为例: 对于第一行和最后一行: 每一个字符的下标…

Java笔试06

在Java中,异常可以分为两大类:编译时异常(编译时检查异常)和运行时异常(非编译时检查异常)。 编译时异常(Checked Exceptions)是指在编译时期必须被捕获或声明抛出的异常。这些异常…

基于springboot家乡特色推荐系统

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的,前后端分离。 开发语言:Java数据库:MySQL技术:…

Q宠大乐斗批量好友添加器(基于python实现)

效果如下: 只要有自动化测试的浏览器和插件就能批量添加等级相近的陌生人为好友,过程迅速,分两个py文件 第一个是主程序: import tkinter as tk import re from tkinter import scrolledtext, font, ttk, messagebox, filedialog from selenium import webdriver from se…

10_实现readonly

在某些时候,我们希望定义一些数据是只读的,不允许被修改,从而实现对数据的保护,即为 readonly 只读本质上也是对数据对象的代理,我们同样可以基于之前实现的 createReactiveObject 函数来实现,可以为此函数…

Unable to open nested entry ‘********.jar‘ 问题解决

今天把现网版本的task的jar拖回来然后用7-zip打开拖了一个jar进去替换mysql-connector-java-5.1.47.jar 为 mysql-connector-java-5.1.27.jar 启动微服务的时候就报错下面的 Exception in thread "main" java.lang.IllegalStateException: Failed to get nested ar…

OS管理和进程的学习

1.冯诺依曼体系结构 1.1 输入设备:键盘,鼠标,键盘,网卡(网络接受),磁盘... 输出设备:显示器,磁盘,网卡(网络发送) .... 存储器&…

CTFHUB技能树之SQL——字符型注入

开启靶场,打开链接: 直接指明是SQL字符型注入,但还是来判断一下 (1)检查是否存在注入点 1 and 11# 返回正确 1 and 12# 返回错误 说明存在SQL字符型注入 (2)猜字段数 1 order by 2# 1 order…

Shell重定向输入输出

我的后端学习大纲 我的Linux学习大纲 重定向介绍 标准输入介绍 从键盘读取用户输入的数据,然后再把数据拿到Shell程序中使用; 标准输出介绍 Shell程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看; 默认输入输出文件 每个…

QT的文件操作类 QFile

QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文 件。 QFile 继承自 QIODevice ,因此它可以像其他IO设备一样使用。 主要功能 文件读写: QFile 支持打开文件进行读取或写入操作文件信息&#x…

neutron组件

1.实现虚拟交换机有两种方式 2.HCS网络节点 华为 HCS 将网络节点单独部署,且部署两台(主备部署) 两张万兆网卡,否则检测无法通过 L3 agent 部署在哪个节点,哪个节点就是网络节点 DHCP agent metadata agent 3.neutron概念 3.1Neutron支持…

人工智能 | 阿里通义千问大模型

简介 通义千问系列模型为阿里云研发的大语言模型。千问模型基于 Transformer 架构,在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在预训练模型的基础之上&…

整理一下实际开发和工作中Git工具的使用 (持续更新中)

介绍一下Git 在实际开发和工作中,Git工具的使用可以说是至关重要的,它不仅提高了团队协作的效率,还帮助开发者有效地管理代码版本。以下是对Git工具使用的扩展描述: 版本控制:Git能够跟踪代码的每一个修改记录&#x…

YOLO目标检测

文章目录 一、含义二、与传统检测对比1.one-stage的优缺点2.two-stage的优缺点 三、MAP指标1.基本概念2.计算方法3.指标意义 一、含义 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2016年提出。它的核心…

力扣 困难 52.N皇后II

文章目录 题目介绍题解 题目介绍 题解 法一:返回51题N皇后List的长度 法二: class Solution {private int n, ans;private boolean[] onPath, diag1, diag2;public int totalNQueens(int n) {this.n n;onPath new boolean[n];diag1 new boolean[n * …

秃姐学AI系列之:语义分割 + 数据集 | 转置卷积 + 代码

语义分割 语义分割将图片中的每个像素分类到对应的类别 通常来说现在的会议软件的背景虚化这个功能用的就是语义分割技术 无人车进行路面识别也是语义分割技术 语义分割 vs 实例分割 语义分割将图像划分为若干组成区域,这类问题的方法通常利用图像中像素之间的相关…

1 -《本地部署开源大模型》如何选择合适的硬件配置

如何选择合适的硬件配置 为了在本地有效部署和使用开源大模型,深入理解硬件与软件的需求至关重要。在硬件需求方面,关键是配置一台或多台高性能的个人计算机系统或租用配备了先进GPU的在线服务器,确保有足够的内存和存储空间来处理大数据和复…

html+css+js实现Notification 通知

实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Notif…