本课中,我们将分析背包数组,遍历出背包中的数据,并打印出背包中的物品,物品属性及物品数量。最后再编写代码来完成根绝物品名称来使用物品的功能函数的封装。
要如何找到背包的地址呢?我们可以通过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