一.《UE4奥丁》人物最大属性

news2024/11/24 10:02:39

​寻找突破口

1.续上节课,此时看到标题,有基础的同学第一反应就是,老师用CE搜索血量,通过改变就能找到!

2.额,有这么简单吗!

3.既然写了这个帖子,肯定是有原因的

4.为了方便学习,我们就先按照同学们的思路来试一试,能不能找到最大属性,比如最大血!

5.首先老生常谈打开游戏,用CE附加游戏,搜索最大血!

6.4字节整数类型,血量470

7.发现结果有3205个,现在我们就要改变它,然后继续搜索

8.这里就等升级后,我们观察最大血的变化

9.再次搜索495

10.what!我的结果呢?没了?

11.这时候有的同学就说,老师!这肯定加密了!我们首次扫描然后变动和未变动来搜索肯定能找到

12.其实呢,这么想也没啥毛病,但是很麻烦,因为可能有很多结果,同学们可以下去试一试这个方法

13.但是为了写这个帖子,就是为了追求不同!

从正向找突破口

1.好了,这里我们换个思路,用一个别的方法

2.我们想一想,游戏要更新数据到界面上,那么肯定会访问内存数据然后格式化字符串更新到UI控件文本上!

3.把这个想清楚,今天的知识点就明白了大半了

4.这里为了让同学们了解的更加清楚,我这里用代码来阐述

5.首先定义2个函数,来模拟游戏格式化字符串显示当前血最大血并显示到UI上

6.接下来我们看看怎么格式化的

7.然后我这里又定义了一个类模拟我们的UI对象

8.当我们格式化字符串后,就会调用这个类对象的成员函数SetText()并设置文本字符串显示到UI上

9.从而我们就能在游戏界面上看到我们的字符串了!

10.好了这里基本原理搞清楚,不太明白的同学会问,老师将这个又啥关系吗?

11.这里细细道来,当我们访问当前血的时候,是不是紧接着访问了最大血!关键就在这里!

12.然后我们想一想,如果在当前血下访问断,是不是就能在断下的代码地方周围看到相关的接口调用并返回最大血呢?

13.起初我们这里只是设想,需要我们验证下!

进一步验证

1.在验证之前,我们用CE先把当前血找出来,通过精确搜索就能很快搜索出来,非常简单就不一一说明了

2.好我们继续,我们看到当前血周围确实没有最大血,而当前血在人物对象偏移+34的地方,类型为4字节整数

3.好了接下来我们就在当前血下访问!

4.在下访问之前,此时肯定有同学会问,为什么不是下写入呢?

5.其实很简单,通过上面代码不难看出,格式化字符串只是在访问而不是写入!明白了把!

6.现在下访问

7.断下来后,正如上面我们所说的,在访问当前血的周围可能有访问最大血,那么我们就在这个代码处的上下层看看接口CALL的返回值

8.果不其然通过下面紧接着的一个CALL的返回值确定是最大血,我们就找到了!是不是很简单呢?

如何调用CALL

1.上面我们找到了CALL返回最大血

2.我们其实可以直接调用CALL,但是发现这个CALL的参数涉及到了浮点数寄存器,可能不好调用

3.那么我们进入内层CALL看看呢

4.我们看到,这个CALL的参数很好调用,但是呢?看看返回值,发现最大血调用CALL后存在了xmm0中

5.是不是感觉也不太好调用

6.我们尝试看看是不能找到真正的内存数据呢?万一找到了刚才同学们说的加密值呢,那就赚大发了!

寻找内存数据

1.紧接着进入CALL内部看看是哪里给xmmo浮点数寄存器写入了最大值

2.最后仔细分析,发现原来人物对象+F0有一个属性数组,而且里面的值全是浮点数!这个浮点数就是把大家给坑住了

3.我们看看人物对象+F0的属性数据内存分布

4.进入就会看到一个4字节浮点数数组,这样看可能不太明显,那么我们显示浮点数看看

5.看见了吗,我们的最大血就在这个属性数组的索引为2的地方存着呢!!

6.哇居然是一个浮点数,其实我们在上面看到xmm0浮点数寄存器的时候,就应该想到可能是浮点数来表示血量的,只是我们的思维被固化的认为血量是整数存放在内存中

7.同时你还看到5080这个就是我们的战斗力存着呢

8.是不是还是很简单,好了今天的内容就讲到这里了,别忘了点个赞,粉粉老师哦

9.感谢大家对迪大学院的一路支持285530835

10.我们下一贴再见!

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

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

相关文章

mysql索引方面的知识

1. 查看表的索引 show index from 表名 ex: 重点看Key_name这一列的值, 可以看到只有一个主键, 目前该表还没有创建索引, 接下来进行索引的创建 2.给表添加索引 create index idx_time_classtype_sip_sport on event_20230508(time,classtype,sip,sport) 说明: 上面index后…

【论文精读】DELS-MVS

今天读的是发表在WACV2023上的文章,第一作者来自于格拉茨技术大学。 文章链接:DELS-MVS: Deep Epipolar Line Search for Multi-View Stereo 文章目录 Abstract1. Introduction2. Related Work3. Algorithm3.1 Depth estimation via epipolar residual3.…

【换脸详细教程】手把手教你进行AI换脸:换脸流程及源码详解

目录 1. 换脸基本原理2 人脸检测及可视化3. 人脸轮廓点检测及可视化4. 人脸图像变换--仿射变换5. 生成遮罩并直接替换人脸6. 人脸颜色校正 最近AI换脸貌似比较火爆,就稍微研究了一下相关了内容。AI换脸是一个娱乐性比较强的应用,这种错位感让人觉得非常有…

搭建高性能数据库集群之一:主从复制

一、概述 1. 数据库主从概念、优点、用途   主从数据库是什么意思呢,主是主库的意思,从是从库的意思。数据库主库对外提供读写的操作,从库对外提供读的操作。 数据库为什么需要主从架构呢?   高可用,实时灾备&am…

手把手教你撸一个接口自动化测试平台(一)

项目构思:开发一个web版的接口自动化测试平台 功能包括:接口导入、自动化测试用例生成、自动化测试报告、可持续集成 项目框架:django vue mysql 技术要求:熟悉django后台开发、熟悉vue开发 第一节:搭建django 项…

被ChatGPT戏耍的周末

被ChatGPT戏耍的周末 1. 被ChatGPT戏耍全过程2. 拆穿ChatGPT的把戏3. AIGC与内容安全 1. 被ChatGPT戏耍全过程 电动垂直起降飞行器(eVTOL,Electric Vertical Takeoff and Landing)技术越来越成熟,为了解下相关产品我周末打开了Cha…

OpenGLES:相机实时滤镜四宫格、九宫格

一.概述 今天继续OpenGLES的学习 今天在之前博文《OpenGLES:GLSurfaceView实现Android Camera预览》 的基础上,使用OpenGLES实现相机 四宫格滤镜 和 九宫格滤镜。 二.四宫格 先定义几个名词: 之前博文中实现的相机普通预览叫:…

【人工智能】“AI + 算力 = 最强龙头”,你怎么看?

文章目录 一、AI 与算力相辅相成1.1 AI 和算力的概念1.2 AI 和算力的应用领域1.3 AI 需要算力的支持1.4 AI 和算力的结合带来的巨大价值1.4.1 人脸识别1.4.2 语音识别1.4.3 自动驾驶1.4.4 医疗诊断1.4.5 自然语言处理 二、AI算力催生“最强龙头”2.1 “最强龙头”的概念2.2 AI …

Unity核心4——SpriteShape

Sprite Shape 是精灵形状的意思,它主要是方便我们以节约美术资源为前提,制作 2D 游戏场景地形或者背景的 ​ 在 Window --> Package Manager 中搜索 2D,选择 2D Sprite Shape,导入项目 一、Sprite Shape Profile 精灵形状概述文…

FPGA基础知识-用户自定义原语

目录 学习目标 学习内容 1.UDP的组成 2.UDP定义规则 3.表示组合逻辑的UDP 4.表示时序逻辑的UDP 5.UDP表中的缩写符号 6.UDP设计指南 学习时间 学习总结 学习目标: 提示:这里可以添加学习目标 理解编写UDP的规则,明白UDP的各个组成部分。 学…

设计师常用的网页设计素材网站大全

设计师不仅需要源源不断的灵感,还需要与时俱进的网页设计素材。 本文推荐4个非常不错的设计素材网站 即时设计资源社区 ​即时设计资源社区是国内优秀的网页设计素材网站,内置阿里、字节、腾讯、京东、谷歌、华为等设计系统,超过3000UI组件…

DDoS攻击导致Azure和Outlook中断

微软已经证实,最近Azure、Outlook和OneDrive门户网站的中断是由于针对该公司服务的第7层DDoS攻击造成的。 这些攻击是由微软追踪到的一个名为Storm-1359的攻击组织造成的,他们自称是匿名苏丹。 故障发生在6月初,Outlook.com的网络门户在6月…

分布式配置中心Apollo中Namespace的类型整理

Namespace的类型 Namespace类型有三种: 【1】私有类型 【2】公共类型 【3】关联类型(继承类型) (1)私有类型 私有类型的Namespace具有private权限。例如上文提到的“application” Namespace就是私有类型。 &…

【计算机网络】运输层端口号、复用与分用

1、复用和分用 2.端口号 3.举例 4.详细学习视频 https://www.bilibili.com/video/BV1c4411d7jb?p58&vd_source621b166d35a3636b23f3c4d270272c53

WSL子系统启动报错 Wsl/Service/CreateInstance/CreateVm/HCS_E_SERVICE_NOT_AVAILABLE

今天琢磨着WindowsLinux子系统研究研究新东西,结果当我启动WSL时却出现了下面的提示: WSL启动报错 由于未安装所需的特性,无法启动操作。 Error code: Wsl/Service/CreateInstance/CreateVm/HCS_E_SERVICE_NOT_AVAILABLE问题排查 于是分析…

Audio API 实现音频播放器

市面上实现音频播放器的库有很多,比如wavesurfer.js、howler.js等等,但是都不支持大音频文件处理,100多M的文件就有可能导致程序崩溃。总之和我目前的需求不太符合,所以打算自己实现一个音频播放器,这样不管什么需求 在…

软件工程是否迎来iPhone时刻?

“软件工程是否迎来iPhone时刻?” 是2023K全球软件研发行业创新峰会上海站主会场的Panel discussion的主题,出场的几位嘉宾给出了不同的答案,其中有两位嘉宾给出了“No”,一位给出了“塞班时刻”(后来给我朋友圈投票是…

设计模式—“状态变化”

在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了解决方案。 典型模式有:Memento、State 一、State 动机 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而…

18-BOM对象

一、是什么 🍕🍕🍕BOM (Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退,前进,刷新&#xff0…

SSM幼儿园管理系统的设计与实现-计算机毕设 附源码86673

SSM幼儿园管理系统的设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于幼儿管理系统也是十分常见的。过去使用手工的管理方式对幼儿园进行管理,造成了管理繁琐、难以维护等问题,如今使用计算…