当前位置: 首页 > news >正文

11.UE-游戏逆向-内存中的FUObjectArray(深入理解内存数据)

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

本次游戏没法给

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

上一个内容:10.UE-游戏逆向-查找UObject(UObject偏移和FUObjectArray)

首先打开游戏,然后使用任务管理器把SC-Plugin for UE4进程关闭掉(如果关不掉说明检测没有处理,去看之前的内容进行处理)

然后使用ce附加,然后点击下图红框 手动添加地址

游戏exe的文件名+上一个内容中找到的FUObjectArray偏移,也就是0x4A92740,然后点击确定

然后选择浏览相关内存区域

然后选择以8字节十六进制显示

然后对比源码,只要是看绿框的TUObjectArray类型

然后接下来对比TUObjectArray类型,然后看FUObjectItem类型

FUObjectItem** 这样的写法说明内存地址里存放的是一个内存地址,然后内存地址里放的还是内存地址,最终指向一个以FUObjectItem结构存放的内存数据,鼠标单击下图红框,然后按空格键

然后就进入了1DA8F737B40这个内存地址了,然后上方说,内存地址里放的还是内存地址

然后单击下图红框,然后再按空格键进入1DA903B0008内存地址

然后下图就是以FUObjectItem结构存放的数据了

然后对比源码,到这可以应该是可以更深入的理解数据结构这个概念了

然后鼠标右击选择后退,后退到TUObjectArray里也就是FChunkedFixedUObjectArray里

下图红框的代码

代码说明,里面的元素概念指的是FUObjectItem,然后FUObjectItem存放的是UObject,然后UObject指的是角色、武器、道具、组件等游戏中的东西,然后块的概念是可以存放多少个FUObjectItem

/** 主表:指向多个"块"的总目录(二级指针数组)*  关系:*  - 每个"块"(Chunk)是一个数组,里面装着多个"元素"(FUObjectItem)*  - 主表(Objects)就像"仓库货架清单",清单上的每个条目都指向一个货架(块)*  - 通过主表能快速找到所有货架,再从货架上找到具体的元素*/
FUObjectItem** Objects;/** 预分配的连续内存块:所有元素集中存放的"超级货架"*  关系:*  - 这是一块连续的内存,里面直接按顺序放着多个"元素"(FUObjectItem)*  - 和上面的"多块分散存储"不同,这里是"一块集中存储",访问速度更快*  - 相当于把所有标签(元素)都整齐地放在一个超大盒子里,而不是多个小盒子*/
FUObjectItem* PreAllocatedObjects;/** 最大元素数量:系统能管理的最多"元素"总数*  关系:*  - "元素"(Element)就是单个FUObjectItem,每个对应一个游戏对象(UObject)*  - 这个值是上限,比如"最多能有10000个标签",不管这些标签放在多少个块里*/
int32 MaxElements;/** 当前元素数量:现在实际存在的"元素"总数*  关系:*  - 等于所有块里的元素数量相加(比如3个块各有100、200、300个元素,总数就是600)*  - 每个元素对应一个真实的游戏对象,这个数越多,说明当前加载的对象越多*/
int32 NumElements;/** 最大块数量:主表(Objects)能容纳的最多"块"总数*  关系:*  - "块"(Chunk)是装元素的容器(数组),比如"最多能有10个盒子"*  - 超过这个数就需要扩容主表,否则无法新增块*/
int32 MaxChunks;/** 当前块数量:现在实际存在的"块"总数*  关系:*  - 每个块里都装着若干元素(比如当前有5个盒子,每个盒子里装着不同数量的标签)*  - 当元素数量增加,现有块装不下时,会新增块(这个数会增加)*/
int32 NumChunks;

然后以4字节十进制的方式查看

如下图,可以看出当前游戏的最大元素是2162688,当前元素数量是47681个,然后最大块是33,当前块的数量是1,如果切换地图它的数量会有变化

然后它现在变成了52841个元素了,添加了5千多个以FUObjectItem结构存放的数据(FUObjectItem对象)

然后记录一下偏移,TUObjectArray在FUObjectArray中0x10位置,FUObjectArray的位置是游戏基址+上一个内容找到的0x4A92740,也就是说最终的公式 游戏基址 + 0x4A92740 +0x10=TUObjectArray

下一节将要Dump(下载存储)这些内存数据


img

http://www.dtcms.com/a/434707.html

相关文章:

  • AI智能体在研究分析中的仿真应用:利他主义的悖论——是道德的顶峰,还是精致的利己?
  • SQL语句——高级字符串函数 / 正则表达式 / 子句
  • 西宁网站建设君博首选建设公司的网站首页
  • 【MySQL】数据库事务深度解析:从四大特性到隔离级别的实现逻辑
  • 2021 年真题配套词汇单词笔记(考研真相)
  • 儿童携带背包专利拆解:活动腿弹簧式伸缩卡扣与三模式(背包 / 座椅 / 安全椅)切换机制
  • 一般做一个网站专题页多少钱多商户商城源码下载
  • 利用网站建设平台河南省建设集团有限公司官网
  • **标题:发散创新:探索分布式账本的深度技术****摘要**:本文将深入探讨分布式账本技术,
  • Berachain稳定币使用指南:HONEY与跨链稳定币的协同之道
  • Ethernaut 1-10
  • 比特币、以太坊的“红与黑”:合法持有与传承的法律边界与警示
  • 函数的定义与使用
  • Citadel 发布首个原生支持 Sui 的硬件钱包 SuiBall
  • 游戏攻略新闻资讯主题模板源码 YK一点资讯模版 Zblog主题模版
  • 英语学习-Saints043-2
  • 手机网站html512306的网站是哪个公司做的
  • 认知篇#14:360度舵机和180度舵机的区别
  • 多模态大语言模型LISA
  • 第一次训练赛题解
  • 在线购物网站 模版怎么开网店具体流程
  • 返回值:on()方法返回的是当前jQuery对象
  • 你用过快捷支付吗?这是一种什么支付方式?
  • 自己做的网页加在网站文章上为什么打不开门户网站系统架构
  • 韩国在中国做美食的视频网站有哪些企业网站建设开发服务
  • (C语言数据结构)二叉树-概念-性质-存储结构-遍历-代码实现层层刨析
  • 面试MySQL 高级问题及解答(三)
  • 网站网页转小程序教程wordpress评论框背景图片
  • 【代码随想录day 32】 力扣 70.爬楼梯
  • Leetcode 76. 最小覆盖子串 滑动窗口+哈希表