- 注册时间
- 2011-3-10
- 最后登录
- 1970-1-1
该用户从未签到
|
武林的选怪CALL,这个call前面的朋友有发过,试验是可行的
DWORD SelectMonster=0x0056A8B0;
_asm
{
pushad
mov eax,dword ptr ds:[0x8d29a4]
mov esi,dwSID
push esi
mov ecx,dword ptr ds:[eax+0x20]
add ecx,0xd4
call SelectMonster
popad
}
但是上面的这个call,必须是要求获得ID的,如果没ID的话,没法用
我在OD上看到,这个call前面还有一个获取怪物ID的call
0045CA65 |. A1 A4298D00 mov eax, dword ptr [8D29A4]
0045CA6A |. 8BBB 9C070000 mov edi, dword ptr [ebx+79C]
0045CA70 |. F7C7 00000080 test edi, 80000000
0045CA76 |. 8B48 1C mov ecx, dword ptr [eax+1C]
0045CA79 |. 8B51 08 mov edx, dword ptr [ecx+8]
0045CA7C |. 8B6A 20 mov ebp, dword ptr [edx+20]
0045CA7F |. 74 08 je short 0045CA89
0045CA81 |. F7C7 00000040 test edi, 40000000
0045CA87 |. 74 02 je short 0045CA8B
0045CA89 |> 33FF xor edi, edi
0045CA8B |> 57 push edi ; /Arg1 = 00000000
0045CA8C |. 8BCD mov ecx, ebp ; |
0045CA8E |. E8 2D570F00 call 005521C0 ; \ElementC.005521C0
然后这个call 的返回值eax就是获得的怪物ID
edi是上次怪物的ID,默认一开始应该是0的
然后我定义了一个call,我打算把获得的ID赋值给dwSID,为前面的选怪call使用
DWORD GetId=0x005521C0;
DWORD LastID
_asm
{
pushad
push LastID
mov eax,dword ptr ds:[0x008D29A4]
mov ecx,dword ptr ds:[eax+0x1C]
mov edx,dword ptr ds:[ecx+0x8]
mov ebp,dword ptr ds:[edx+0x20]
mov ecx,ebp
call GetId
mov dwSID,eax
popad
}
但是这个call始终无法用,一用就崩溃,请各位老师指点指点哪里错了? |
|