关于网络游戏外挂,VB调用Call
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就是调用游戏内部函数吗?
原理是什么哪?
[解决办法]
你完全没有概念。
这个牵涉到汇编、x86体系结构、操作系统、存储器管理等等。简单地说就是在内存里面写入一段可执行代码,然后让处理器执行。
[解决办法]
内嵌汇编的一种方法,必须有汇编原理知识和vb函数编译知识,知道vb源码编译后函数使用的栈、寄存器等规则。
[解决办法]
很明显这个程序虽然是用VB写的,但其实是用汇编写的。并且这个汇编类被封装了,就是这个call开头定义的clsASM,这个类里边把汇编指令都封装了,然后在这个call函数里就如同用汇编语言一样的写了这些程序。这些程序vb的程序员很难读懂,你最好还是问汇编的程序员吧。
[解决办法]
就是call函数