追逐自己的梦想----------辅助制作第六课:背包数组分析和根据物品名称来使用物品

本文介绍如何分析游戏背包数据结构,通过CE工具找到背包基址,解析物品ID、名称、描述和数量。并展示了如何实现根据物品名称来使用物品的函数代码。
摘要由CSDN通过智能技术生成

本课中,我们将分析背包数组,遍历出背包中的数据,并打印出背包中的物品,物品属性及物品数量。最后再编写代码来完成根绝物品名称来使用物品的功能函数的封装。


要如何找到背包的地址呢?我们可以通过CE来找,反复移动一个物品,最后可以得到一个地址,然后再查找访问了这个地址的代码,就可以得到背包的基址了。

具体操作如下面所示:



首先我们先分析一下背包数组:

tpyedef struct PACKET{

int 物品id;

char* 物品名称;

char* 物品描述;

int 物品数量等;

}_PACKET;



_PACKET[36];以上就完成了对背包数组


所有当我们访问这其中的某个地址的时候也会访问到背包的基址。他的基址也肯定就在他的附近。


通过CE获取到的访问了这个地址的代码

007A92A1 - 3B 3D 54FF1B03  - cmp edi,[Client.exe+2DBFF54]
007A92A7 - 75 2A - jne Client.exe+3A92D3
007A92A9 - 8B 84 9F 10040000  - mov eax,[edi+ebx*4+00000410] <<
007A92B0 - 85 C0  - test eax,eax
007A92B2 - 74 1F - je Client.exe+3A92D3


EAX=2E0A1BF8
EBX=00000000
ECX=00000000
EDX=00000163
ESI=00000143
EDI=1A330F60
ESP=0018A480
EBP=0018CCC4
EIP=007A92B0



007A9384 - 0F84 92110000 - je Client.exe+3AA51C
007A938A - 8B 0D C088F500  - mov ecx,[Client.exe+B588C0]
007A9390 - 8B 84 9F 10040000  - mov eax,[edi+ebx*4+00000410] <<
007A9397 - 85 C0  - test eax,eax
007A9399 - 0F84 B6080000 - je Client.exe+3A9C55

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值