28.第二阶段x86游戏实战2-遍历周围-通过附近NPC怪物血量的方式(初识vm代码)

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

本次游戏没法给

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

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

工具下载:

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

提取码:6tw3

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

上一个内容:27.第二阶段x86游戏实战2-遍历周围NPC跳出递归循环

上一个内容中通过使用附近NPC的名字去附近NPC列表失败了,找到一个递归循环中,路线就断了,本次再使用其它方式进行查找附近NPC列表

这次通过附近怪物血量追,首先打开游戏打开CE,并使用CE附加到游戏

首先找一个旗鼓相当的怪物,别一下把怪物打死了,或别被怪物打死了,然后打怪物的时候它是有一个百分比的,有百分比的数据一般都是小数,所以使用CE搜索浮点数类型的初始值,如下图

首次扫描完会有很多,如下图

然后来到游戏打一下怪物,让血量变少,然后使用减少的数值再次扫描

再次扫描完结果就会变少了

然后不要打怪物,使用未变动的数值再次扫描

然后结果又会变少,现在就重复上面的步骤打怪物用减少,不打怪物用未变动的数值,操作上几次

最终有三个特别像百分比,如下图红框,怪物血量也差不多还剩百分之20左右

然后修改它们的值,如果修改对了,怪物血量会有变化,如下图修改成1,怪物就会满血,1就是百分之百的血量

然后现在找到一个内存地址了,然后打开OD开始使用硬件写入断点去找,如下图下硬件写入断点

下完硬件写入断点之后,回到游戏打一下怪物,让它触发断点,然后就回来的下图红框位置,记得把硬件写入断点删除

然后有时候硬件断点会在多个位置断下来,所以需要多次硬件断点看看在什么位置断下来的几率大,哪个断下来的几率打就先用哪个,下图硬件断点多次进入,上图硬件断点就进入了一次,所以就用下图中的代码

开始分析代码,xmm0是一个寄存器xmm开头的寄存器专门用来存放小数的,如下图红框,血量的位置是eax+0x8位置,然后eax来自于esi+0x10,然后esi的值来自于ecx,所以要往上找一层

然后在下图红框位置打断点(有时候硬件断点和普通断点CTRL+F9的位置会不一样,这里先尝试普通断点,如果普通断点追着费劲再尝试打硬件写入断点)

CTRL+F9之后,回来到下图位置,可以发现下图红框的代码我们没法读,这说明来到了一个关键的地方,游戏开发者把这块代码进行了vm、代码混淆,本次到这也失败了,下一次再继续


相关推荐
joe02359 小时前
电脑安装 Win10 提示无法在当前分区上安装Windows的解决办法
windows·gpt·电脑·uefi
前端 贾公子9 小时前
vue-cli 模式下安装 uni-ui
前端·javascript·windows
Elastic 中国社区官方博客11 小时前
在 Windows 上使用 Docker 运行 Elastic Open Crawler
大数据·windows·爬虫·elasticsearch·搜索引擎·docker·容器
CIAS13 小时前
clonezilla 导出自动化恢复iso
linux·windows·clonezilla
墨菲安全14 小时前
Node.js Windows下路径遍历漏洞
windows·node.js·路径遍历漏洞
NoirSeeker15 小时前
在windows平台上基于OpenHarmony sdk编译三方库并暴露给ArkTS使用(详细)
c++·windows·arkts·鸿蒙·交叉编译
红藕香残玉簟秋15 小时前
【python学习】windows使用conda管理python虚拟环境
windows·python·conda
紫云无堤21 小时前
20250717 Ubuntu 挂载远程 Windows 服务器上的硬盘
服务器·windows·ubuntu
wydxry1 天前
断网情况下,网线直连 Windows 笔记本 和Ubuntu 服务器
服务器·windows·ubuntu
_Kayo_1 天前
项目学习笔记 display从none切换成block
windows·笔记·学习