如題..
//////////////////////使用物品 **************************
procedure UseItemsCall(aPParams:PParams); Stdcall;
var
Address: pointer;
P1,p2: dword;
begin
Address:=Pointer(W2I_UseItem_Call); //$645C40
P1:=aPParams^.Param1;
p2:=aPParams^.Param2;
asm
pushad
push 1
push p1
push p2
push 0
mov ebx,dword ptr [W2i_Base_ADDR] //$AE4B68;
mov ebx,dword ptr [ebx+$34]
lea ecx,dword ptr [ebx+$EC]
call address
popad
end;
end;
procedure UseItems(aItems, aPostion: cardinal); //使用物品
var
aParams : TParams;
aParamsSize: DWORD;
begin
aParams.Param1:=aItems;
aParams.Param2:=aPostion;
aParamsSize:=SizeOf(aParams);
if hCurrentHandle<>0 then
begin
injectfunc(@UseItemsCall, @aParams,aParamsSize);
end;
end;
在使用CALL的時候會當機
也試過直接填入數值
P1:=8621 紅水代碼 //$21AD<--這個也試過
P2:=4 包裹位置第5個
也一樣當機
另外
lea ecx,dword ptr [ebx+$EC] 這一行不一樣
用CE找到的是 EDX+$EC 改完後也當機
已經不知道該怎麼解決了
拜託各位大大幫我看一下哪邊有問題
就只差這個部分基本功能就都有了..
謝謝...
PS::(我在5服..很遺憾不能用E大的..所以只好認命一點= =) |
|