108.游戏安全项目:信息显示二-剑侠情缘基址分析

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

内容参考于:易道云信息技术研究院

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

上一个内容:107.游戏安全项目-基址更新后定位方法

血量的地址是基址 + CEF18的位置,当前基址是400000

然后这个地址是一个绿色的,绿色的一定会是全局变量,但是当切换进度的时候它又会变

切换进度发生改变,变成了基址+B5ACC,所以这样的可以猜测为声明人物属性的变量时是用的数组,一个全局的数组,内存地址的变化是因为访问数组的下标变了

然后接下来要逆向分析找 数组的起始点 与 索引,数组的起点也就是 数组[0] 的位置,索引就是当前是用什么来代表的人物。

然后右击选择是什么访问了它

然后就出来了两个,如果没有的话在游戏中使用一下加血的技能就会有了

它们所有的访问都是以 4B51D0 为开头进行的访问,然后加上了什么什么,它就很可能是数组的基址,上图红框附近的代码

edx * 4 + 4B51D0代表了人物血量

首先 eax=*ecx;

假设eax结果是1;

edx = eax+eax*8 也就是edx = eax*9

然后 shl 是左移运算符,edx << 6; 也就是 edx = eax * 576 ,具体可以看图1

然后 sub 是减法 也就是edx = edx - eax 也就是等于 edx = 576* eax-eax 也就等于edx = 575* eax 575 * 4 + 004B51D0 也就是等于 2300 + 4B51D0 也就是

eax是0的时候人物地址是4B51D0

eax是1的时候人物地址是4B51D0 + 2300

eax是2的时候人物地址是4B51D0 + 4600

然后在找到ecx 的值就可以了,它的值是索引,通过它可以找到人物对象地址 

 

图1:

然后ecx的值是537400

537400 - 游戏基址的结果在游戏pe中,符合全局变量的条件

然后人物的数组是来自于 4B51C0(4B51D0是血量),索引来自于游戏基址 + 0x137400位置,然后人物的地址就是 4B51C0 + 索引 * 8FC 这样计算获取,8FC的十进制是2300


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值