Sub CallAsmRun(x As Single, y As Single, z As Single, fly As Long) '走路
Dim asm As New clsASM
Const Address1 = &H45E2F0
Const Address2 = &H461D60
Const Address3 = &H45E6F0
With asm
.Pushad '!PUSHAD
.SUB_ESP &HC '!SUB ESP,&HC
.Mov_EAX_DWORD_Ptr World2_Asm '!MOV EAX, DWORD PTR DS:[%W2i_Base]
.Mov_EAX_DWORD_Ptr_EAX_Add &H1C '!MOV EAX, DWORD PTR DS:[EAX+&H1C]
.Mov_ESI_DWORD_Ptr_EAX_Add &H20 '!MOV ESI, DWORD PTR DS:[EAX+&H20]
.Mov_ECX_DWORD_Ptr_ESI_Add &HB74 '!MOV ECX, DWORD PTR DS:[ESI+&HB74]
.Push 1 '!PUSH 1
.Mov_EDX Address1 '!MOV EDX,&H45E9B0
.Call_EDX '!CALL EDX
.Mov_EDI_EAX '!MOV EDI, EAX
.Mov_EAX Float2Int(x) '!MOV EAX,x
.Mov_DWORD_Ptr_ESP_EAX '!MOV [ESP],EAX
.Mov_EAX Float2Int(z) '!MOV EAX,z
.Mov_DWORD_Ptr_ESP_ADD_EAX &H4 '!MOV [ESP+4],EAX
.Mov_EAX Float2Int(y) '!MOV EAX,y
.Mov_DWORD_Ptr_ESP_ADD_EAX &H8 '!MOV [ESP+8],EAX
.Push_ESP '!PUSH ESP
.Push fly '!PUSH fly
.Mov_ECX_EDI '!MOV ECX, EDI
.Mov_EDX Address2 '!MOV EDX,&H462410
.Call_EDX '!CALL EDX
.Push 0 '!PUSH 0
.Push 1 '!PUSH 1
.Push_EDI '!PUSH EDI
.Mov_ECX_DWORD_Ptr_ESI_Add &HB74 '!MOV ECX, DWORD PTR DS:[ESI+&HB74]
.Push 1 '!PUSH 1
.Mov_EDX Address3 '!MOV EDX,&H45EDB0
.Call_EDX '!CALL EDX
.Mov_EAX_DWORD_Ptr World2_Asm '!MOV EAX, DWORD PTR DS:[%W2i_Base]
.Mov_EAX_DWORD_Ptr_EAX_Add &H1C '!MOV EAX, DWORD PTR DS:[EAX+&H1C] .Mov_EBX_ESP '!MOV EBX,ESP
.Mov_EAX_DWORD_Ptr_EBX '!MOV EAX, DWORD PTR [EBX]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H20 '!MOV [ECX+&H20], EAX
.Mov_EAX_DWORD_Ptr_EBX_Add &H4 '!MOV EAX, DWORD PTR [EBX+4]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H24 '!MOV [ECX+&H24], EAX
.Mov_EAX_DWORD_Ptr_EBX_Add &H8 '!MOV EAX, DWORD PTR [EBX+8]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H28 '!MOV [ECX+&H28], EAX
.Add_ESP &HC '!ADD ESP,&HC
.Popad '!POPAD
.ret
End With
asm.inject hProcId
asm.Run_ASM hProcId, 0
asm.free hProcId, 0
End Sub 上面是所谓vb调用call的代码
vb调用call就是调用游戏内部函数吗?
原理是什么哪?
Dim asm As New clsASM
Const Address1 = &H45E2F0
Const Address2 = &H461D60
Const Address3 = &H45E6F0
With asm
.Pushad '!PUSHAD
.SUB_ESP &HC '!SUB ESP,&HC
.Mov_EAX_DWORD_Ptr World2_Asm '!MOV EAX, DWORD PTR DS:[%W2i_Base]
.Mov_EAX_DWORD_Ptr_EAX_Add &H1C '!MOV EAX, DWORD PTR DS:[EAX+&H1C]
.Mov_ESI_DWORD_Ptr_EAX_Add &H20 '!MOV ESI, DWORD PTR DS:[EAX+&H20]
.Mov_ECX_DWORD_Ptr_ESI_Add &HB74 '!MOV ECX, DWORD PTR DS:[ESI+&HB74]
.Push 1 '!PUSH 1
.Mov_EDX Address1 '!MOV EDX,&H45E9B0
.Call_EDX '!CALL EDX
.Mov_EDI_EAX '!MOV EDI, EAX
.Mov_EAX Float2Int(x) '!MOV EAX,x
.Mov_DWORD_Ptr_ESP_EAX '!MOV [ESP],EAX
.Mov_EAX Float2Int(z) '!MOV EAX,z
.Mov_DWORD_Ptr_ESP_ADD_EAX &H4 '!MOV [ESP+4],EAX
.Mov_EAX Float2Int(y) '!MOV EAX,y
.Mov_DWORD_Ptr_ESP_ADD_EAX &H8 '!MOV [ESP+8],EAX
.Push_ESP '!PUSH ESP
.Push fly '!PUSH fly
.Mov_ECX_EDI '!MOV ECX, EDI
.Mov_EDX Address2 '!MOV EDX,&H462410
.Call_EDX '!CALL EDX
.Push 0 '!PUSH 0
.Push 1 '!PUSH 1
.Push_EDI '!PUSH EDI
.Mov_ECX_DWORD_Ptr_ESI_Add &HB74 '!MOV ECX, DWORD PTR DS:[ESI+&HB74]
.Push 1 '!PUSH 1
.Mov_EDX Address3 '!MOV EDX,&H45EDB0
.Call_EDX '!CALL EDX
.Mov_EAX_DWORD_Ptr World2_Asm '!MOV EAX, DWORD PTR DS:[%W2i_Base]
.Mov_EAX_DWORD_Ptr_EAX_Add &H1C '!MOV EAX, DWORD PTR DS:[EAX+&H1C] .Mov_EBX_ESP '!MOV EBX,ESP
.Mov_EAX_DWORD_Ptr_EBX '!MOV EAX, DWORD PTR [EBX]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H20 '!MOV [ECX+&H20], EAX
.Mov_EAX_DWORD_Ptr_EBX_Add &H4 '!MOV EAX, DWORD PTR [EBX+4]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H24 '!MOV [ECX+&H24], EAX
.Mov_EAX_DWORD_Ptr_EBX_Add &H8 '!MOV EAX, DWORD PTR [EBX+8]
.Mov_DWORD_Ptr_ECX_ADD_EAX &H28 '!MOV [ECX+&H28], EAX
.Add_ESP &HC '!ADD ESP,&HC
.Popad '!POPAD
.ret
End With
asm.inject hProcId
asm.Run_ASM hProcId, 0
asm.free hProcId, 0
End Sub 上面是所谓vb调用call的代码
vb调用call就是调用游戏内部函数吗?
原理是什么哪?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货