【游戏逆向】RPG游戏背包镶嵌系统分析

文章探讨了3D游戏中装备镶嵌系统的实现,通过分析游戏代码和物品对象,揭示了镶嵌槽数量和宝石ID的存储位置。通过物品属性和描述对象的观察,确定了最大镶嵌槽数量和已镶嵌宝石的计算公式,为理解和可能的外挂检测提供了基础。
摘要由CSDN通过智能技术生成

镶嵌系统是很多3D游戏都有的功能,玩家可以向镶嵌槽内附加宝石来提升装备的属性,这也直接提升了物品的价值。在一些扫拍卖和摆摊的外挂中经常利用这个属性来低价购入高价值装备。以这款游戏为例,我们来对装备上的镶嵌槽和镶嵌宝石进行分析。

一般来说镶嵌方面的属性会存放在背包属性遍历中,于是我们选一个可以可以打孔的装备来分析(如图)
在这里插入图片描述
我们发现物品分为最大的镶嵌槽数量和以及开启的镶嵌槽数量,通过对镶嵌槽进行开启,并观察物品对象中的变化,得出+45为物品已经开启的镶嵌槽数量,下断访问后可以在代码段得到偏移(如图)
在这里插入图片描述
对装备上镶嵌一个宝石,再次观察物品对象,发现对象+2C的位置出现了类似于ID的数值,下断点访问后游戏断下(如图)在这里插入图片描述
这里得出的偏移是一个结构大小为2字节的数组,数组的最大成员数量是6,而对WORD型的ID分析,发现这是宝石的ID,在取名字的数组中可以得到名字(如图)在这里插入图片描述
这样我们就得到了镶嵌槽在物品对象下的信息,而最大的镶嵌槽数量并没有在物品属性对象下。由于最大镶嵌槽数量是在物品描述中的,所以我们到物品名字所在的对象下进行观察(如图)在这里插入图片描述
在+130偏移处的数值为6,和最大镶嵌槽数量相等,对这个数值进行修改,发现装备显示的信息也随着改变(如图)在这里插入图片描述
这样我们就得到了完整的装备镶嵌信息,公式如下

[[FBDCBC]+物品ID*4]+130 物品镶嵌槽上限

[[8E0D18]+0a848+n4]+2C+m2 装备镶嵌宝石ID WORD型 m为宝石镶嵌序号 从0开始最大值为装备镶嵌槽数量

[[8E0D18]+0a848+n*4]+44 装备镶嵌槽数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值