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、代码混淆,本次到这也失败了,下一次再继续


相关推荐
love530love3 小时前
Docker 稳定运行与存储优化全攻略(含可视化指南)
运维·人工智能·windows·docker·容器
1024小神7 小时前
tauri项目在windows上的c盘没有权限写入文件
c语言·开发语言·windows
程序视点16 小时前
Window 10文件拷贝总是卡很久?快来试试这款小工具,榨干硬盘速度!
windows
wuk99816 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
lzb_kkk17 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
Paper_Love1 天前
x86-64_windows交叉编译arm_linux程序
arm开发·windows
前端若水1 天前
通过 Windows 共享文件夹 + 手机访问(SMB协议)如何实现
windows·智能手机
超龄超能程序猿1 天前
dnSpy 使用教程
windows·microsoft
路来了2 天前
Python小工具之PDF合并
开发语言·windows·python
csdn_aspnet2 天前
在 Windows 上安装和运行 Apache Kafka
windows·kafka