- 注册时间
- 2011-11-5
- 最后登录
- 1970-1-1
该用户从未签到
|
clsASM里的代码如下:
Function Add_ECX(i As Long) As Long
OPcode = OPcode + "83C1" + Int2Hex(i, 8)
End Function
意思是: ecx=ecx + 某个数值
其他的函数本人经使用是正常的,用了这个函数出错;
用OD调试才知道错在这个函数上 呵呵
没办法只有自己先加好了再 Push 了。。。。
代码如下:
wRm = ReadMem(&HB7AD90) 'Mov_ECX_DWORD_Ptr &HB7AD90 ' mov edx, dword ptr [00B7AD90]
wRm = wRm + &HC 'Add_ECX &HC ' add ecx, 0C
With asm ' asm
.Pushad ' pushad
.Push 2 ' push 2
.Mov_ECX rZuoBiaoY ' mov ecx,Y
.Push_ECX ' push ecx
.Mov_EDX rZuoBiaoX ' mov edx,X
.Push_EDX
.Mov_ECX SarY
.Push_ECX
.Mov_EAX SarX
.Push_EAX
.Mov_ECX wRm '这里变通了一下
.Mov_EBX &H553A80 'call 00553A80
.Call_EBX
.Mov_ECX_EAX '取 Call 的返回值 eax
.Push 3
.Push 0
.Push 1
.Push_ECX 'push ecx
.Mov_ECX_DWORD_Ptr &HB7ADB4 'mov ecx, dword ptr [00B7ADB4]
.Mov_EBX &H54B100 'call 0054B100 ; NPC对话CALL
.Call_EBX
.Popad
.Ret
End With
asm.Run_ASM pid ' 调用进程注入NPC对话CALL
不知有高手能改正这个函数的错吗? |
|