17.第二阶段x64游戏实战-人工遍历二叉树结构

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

本次游戏没法给

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

上一个内容:16.第二阶段x64游戏实战-分析二叉树结构

上一个内容里把二叉树的结构写了写,本次手动遍历一次二叉树,增加一下印象

首先来到下图红框位置,也就是二叉树的基址

然后在内存窗口跳转过去

然后右击选择地址

然后之前找人物名字、坐标的时候也找到了一个人物的公式

[[[[0x00007FF65557EE38]+0x98]+0x1B0]+0x18]+0x30 // 人物名字

[[[[[[[[[0x00007FF69E23EE38]+0x80]]+0x10]]]+0x28]+0x1B0]+0x18]+0x8 // 附近怪物的百分比血量

可以发现一件事都有 +0x1B0]+0x18] 这个,这可以说明 [[[[[[[0x00007FF69E23EE38]+0x80]]+0x10]]]+0x28] 是一个npc对象(就是玩家、怪物、宝箱、药材等数据,这些东西其实也都属于npc,只是叫法不同)

这也可以说明 [[[[[[[[[0x00007FF69E23EE38]+0x80]]+0x10]]]+0x28]+0x1B0]+0x18] + 0x30位置是npc的名字,接下来验证这件事

验证一下上方写的是不是真的,首先右击进入地址

进入之后来到0x80位置,如下图红框

可以看到下图红框像是一个数量0x88位置是数量,附近npc的数量

然后如下图进入0x80的地址

它先进入的是0x8位置,也就是说第一个数据的公式应该是 [[[[[[[[[0x00007FF69E23EE38]+0x80]]+0x8]]]+0x28]+0x1B0]+0x18]+0x8,本来[[[[0x00007FF69E23EE38]+0x80]]+0x10]现在是[[[[0x00007FF69E23EE38]+0x80]]+0x8]

[[[[0x00007FF69E23EE38]+0x80]]+0x8]也就是下图红框的位置

然后如下图,红框里的是0x18位置数据是01,蓝框里的是0x19位置,数据是00,代码中对0x19判断了是不是0,只有数据是0才会进入循环,也就表示当前二叉树是有下一个数据的(下一个二叉树结构)

然后下图红框位置0x20,二叉树的id(应该就是用它进行的排序)

然后通过[[0x000001C776B1EA50+0x1B0]+0x18]+0x30这个公式应该可以得到一个名字,但它是一个无效的表达式,难倒我们的公式错了?

然后进入左边的数据(二叉树结构)注意现在在第一个二叉树结构进行的 在内存窗口中跳转到知道QWORD

进入之后

然后使用它0x28位置的值 [[0x000001C7000001C7+0x1B0]+0x18]+0x30 也就是这个公式再次尝试跳转,还是不行

然后再回到第一个二叉树(按键盘上的减号就能往上回了),如下图这次进入它右边的二叉树里

再使用它的0x28位置的数据 [[0x000001C7656DABF0+0x1B0]+0x18]+0x30

这次就可以了

然后点击确定进行跳转,跳转之后可以看到名字了,中文名看到的可能是乱码,需要进行设置,如下图选择代码页

然后选择GBK或System,Windows系统一般都是GBK,System会自动检测系统选择系统的编码(代码页),选择好点击确定就可以看到名字了,

名字,现在是第二个二叉树,放到是我们玩家角色的地址,下图里是我角色的名字

然后再回到二叉树,如下图再看看其它二叉树是什么

这个二叉树没有东西

再回到上一个二叉树(我们玩家角色的二叉树)看看右边的二叉树结构,下图并不是从上一个二叉树找到的是从第一个二叉树里找到的,这是一个怪物的名字

通过上面的分析可以看出npc的数据并不一定在什么位置,手动分析很累,分析多了头就晕了,反正就是这样的一个逻辑了,可以证明我们玩家角色也在这个二叉树里,附近npc也在二叉树里,npc和我们的人物结构也都一样不需要重新找了直接用就行了,下一章使用代码遍历这个二叉树来得到附近的npc

0x00007FF7F244A0E8 - 0x00007FF7F1B00000=0x94A0E8


img

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

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

相关文章

Oracle 11g RAC ASM磁盘组剔盘、加盘实施过程

环境:AIX6.1 Oracle RAC 11.2.0.3 前期准备: 1.查看DG磁盘组空间情况: –查看DG磁盘组空间情况: ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Of…

Java—— 正则表达式 方法及捕获分组

识别正则表达式的方法 方法名说明public String[] matches(String regex) 判断字符串是否满足 正则表达式的规则 public string replaceAll(String regex,string newstr) 按照正则表达式的 规则进行替换 public string[] split(String regex) 按照正则表达式的 规则切割字符串…

达梦并行收集统计信息

达梦收集统计信息速度如何? 答:1分钟1G 大库收集起来可能比较慢,想并行收集需要一些条件 3个参数先了解一下 我把max_parallel_degree改为16 相关说明可以看一下 对一个3G的表收集 收集方法 DBMS_STATS.GATHER_TABLE_STATS( TEST,T1,…

PyTorch 实战:Transformer 模型搭建全解析

Transformer 作为一种强大的序列到序列模型,凭借自注意力机制在诸多领域大放异彩。它能并行处理序列,有效捕捉上下文关系,其架构包含编码器与解码器,各由多层组件构成,涉及自注意力、前馈神经网络、归一化和 Dropout 等…

网页不同渲染方式的应对与反爬机制的处理——python爬虫

文章目录 写在前面爬虫习惯web 网页渲染方式服务器渲染客户端渲染 反爬机制使用session对象使用cookie让请求头信息更丰富使用代理和随机延迟 写在前面 本文是对前两篇文章所介绍的内容的补充,在了解前两篇文章——《爬虫入门与requests库的使用》和《BeautifulSou…

RK3588平台用v4l工具调试USB摄像头实践(亮度,饱和度,对比度,色相等)

目录 前言:v4l-utils简介 一:查找当前的摄像头设备 二:查看当前摄像头支持的v4l2-ctl调试参数 三根据提示设置对应参数,在提示范围内设置 四:常用调试命令 五:应用内执行命令方法 前言:v4l-utils简介 v4l-utils工具是由Linu…

Spring Security基础入门

本入门案例主要演示Spring Security在Spring Boot中的安全管理效果。为了更好地使用Spring Boot整合实现Spring Security安全管理功能,体现案例中Authentication(认证)和Authorization(授权)功能的实现,本案…

Trae+DeepSeek学习Python开发MVC框架程序笔记(二):使用4个文件实现MVC框架

修改上节文件,将test2.py拆分为4个文件,目录结构如下: mvctest/ │── model.py # 数据模型 │── view.py # 视图界面 │── controller.py # 控制器 │── main.py # 程序入口其中model.py代码如下&#xff…

从认证到透传:用 Nginx 为 EasySearch 构建一体化认证网关

在构建本地或云端搜索引擎系统时,EasySearch 凭借其轻量、高性能、易部署等优势,逐渐成为众多开发者和技术爱好者的首选。但在实际部署过程中,如何借助 Nginx 为 EasySearch 提供高效、稳定且安全的访问入口,尤其是在身份认证方面…

CPU 虚拟化机制——受限直接执行 (LDE)

1. 引言:CPU虚拟化的核心问题 让多个进程看似同时运行在一个物理CPU上。核心思想是时分共享 (time sharing) CPU。为了实现高效且可控的时分共享,本章介绍了一种关键机制,称为受限直接执行 (Limited Direct Execution, LDE)。 1.1 LDE的基本…

linux 中断子系统链式中断编程

直接贴代码了&#xff1a; 虚拟中断控制器代码&#xff0c;chained_virt.c #include<linux/kernel.h> #include<linux/module.h> #include<linux/clk.h> #include<linux/err.h> #include<linux/init.h> #include<linux/interrupt.h> #inc…

容器修仙传 我的灵根是Pod 第10章 心魔大劫(RBAC与SecurityContext)

第四卷&#xff1a;飞升之劫化神篇 第10章 心魔大劫&#xff08;RBAC与SecurityContext&#xff09; 血月当空&#xff0c;林衍的混沌灵根正在异变。 每道经脉都爬满黑色纹路&#xff0c;神识海中回荡着蛊惑之音&#xff1a;"破开藏经阁第九层禁制…夺取《太古弑仙诀》……

基于c#,wpf,ef框架,sql server数据库,音乐播放器

详细视频: 【基于c#,wpf,ef框架,sql server数据库&#xff0c;音乐播放器。-哔哩哔哩】 https://b23.tv/ZqmOKJ5

精益数据分析(21/126):剖析创业增长引擎与精益画布指标

精益数据分析&#xff08;21/126&#xff09;&#xff1a;剖析创业增长引擎与精益画布指标 大家好&#xff01;在创业和数据分析的探索道路上&#xff0c;我一直希望能和大家携手共进&#xff0c;共同学习。今天&#xff0c;我们继续深入研读《精益数据分析》&#xff0c;剖析…

Spark-streaming核心编程

1.导入依赖‌&#xff1a; <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-10_2.12</artifactId> <version>3.0.0</version> </dependency> 2.编写代码‌&#xff1a; 创建Sp…

Kafka的ISR机制是什么?如何保证数据一致性?

一、Kafka ISR机制深度解析 1. ISR机制定义 ISR&#xff08;In-Sync Replicas&#xff09;是Kafka保证数据一致性的核心机制&#xff0c;由Leader副本&#xff08;复杂读写&#xff09;和Follower副本(负责备份)组成。当Follower副本的延迟超过replica.lag.time.max.ms&#…

Docker 基本概念与安装指南

Docker 基本概念与安装指南 一、Docker 核心概念 1. 容器&#xff08;Container&#xff09; 容器是 Docker 的核心运行单元&#xff0c;本质是一个轻量级的沙盒环境。它基于镜像创建&#xff0c;包含应用程序及其运行所需的依赖&#xff08;如代码、库、环境变量等&#xf…

数据库监控 | MongoDB监控全解析

PART 01 MongoDB&#xff1a;灵活、可扩展的文档数据库 MongoDB作为一款开源的NoSQL数据库&#xff0c;凭借其灵活的数据模型&#xff08;基于BSON的文档存储&#xff09;、水平扩展能力&#xff08;分片集群&#xff09;和高可用性&#xff08;副本集架构&#xff09;&#x…

OpenFeign和Gateway

OpenFeign和Gateway 一.OpenFeign介绍二.快速上手1.引入依赖2.开启openfeign的功能3.编写客户端4.修改远程调用代码5.测试 三.OpenFeign参数传递1.传递单个参数2.多个参数、传递对象和传递JSON字符串3.最佳方式写代码继承的方式抽取的方式 四.部署OpenFeign五.统一服务入口-Gat…

spark-streaming(二)

DStream创建&#xff08;kafka数据源&#xff09; 1.在idea中的 pom.xml 中添加依赖 <dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming-kafka-0-10_2.12</artifactId><version>3.0.0</version> </…