1 先打开OD,我们使用一下第8格的人参,发现ESI的值恰好是7,说明这个有可能是背包物品的下标
2 使用金创药时下断点
edi=1F302378
ecx=00000001
3 使用人参时下断点
edi=1F302378
ecx=00000001
4 发现不管是什么物品都是这个,为避免下次再进游戏就不是这个,我们用CE找一下它的基址
5 发现有两个基址,其中02E3D3E4就是我们上一节找的背包基址
所以,[背包基址] = 背包对象
00854DC4 . /E9 B5000000 jmp Client.00854E7E 00854DC9 > |8B87 601C0000 mov eax,dword ptr ds:[edi+0x1C60]
00854DCF . |56 push esi ; 背包物品下标
00854DD0 . |51 push ecx ; 1
00854DD1 . |50 push eax ; 0
00854DD2 . |8BCF mov ecx,edi ; ecx=[02E3D3E4] //背包对象
00854DD4 . |E8 C73FFEFF call Client.00838DA0 ; 背包物品使用CALL
6 尝试注入代码,看能否使用第一格的金创药,实践证明可以实现
push 0
push 1
push 0
mov ecx,02E3D3E4
mov ecx,[ecx]
call 00838DA0 //根据下标使用背包物品 函数的首地址