⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod98asmcall.bas

📁 这是诛仙外挂的源代码
💻 BAS
字号:
Attribute VB_Name = "Mod98AsmCall"
Option Explicit

''TAB选怪
Sub CallTabKey()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_ECX_DWORD_Ptr FirstAdr
        .Mov_ECX_DWORD_Ptr_ECX_Add &H1C
        .Mov_ECX_DWORD_Ptr_ECX_Add &H28
        .Push 1
        .Mov_EAX TabCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''ID选怪
Sub CallSelectById(GuaiWuID As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Push GuaiWuID
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_ECX_DWORD_Ptr_EAX_Add &H20
        .Add_ECX &HD4
        .Mov_EAX SelectByIdCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''无效果普通攻击
Sub CallNormalAttack()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX NormalAttackCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''技能攻击
Sub CallSkillAttack(SkillID As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EAX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EAX_DWORD_Ptr_EAX_Add &H28
        .Mov_ECX_EAX
        .Push -1
        .Push 0
        .Push 0
        .Mov_EAX SkillID
        .Push_EAX
        .Mov_EAX SkillAttackCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''打坐
Sub CallZazen()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX ZazenCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''取消打坐
Sub CallUnZazen()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX UnZazenCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
    End Sub
''拾取物品
Sub CallPickItem(GoodsID As Long, GoodsSystemID As Long)
    Dim asm As New clsASM
    With asm
       .Pushad
        .Mov_ECX_DWORD_Ptr FirstAdr
        .Mov_EDX GoodsID
        .Push_EDX
        .Mov_ECX_DWORD_Ptr_ECX_Add &H20
        .Mov_EAX GoodsSystemID
        .Push_EAX
        .Add_ECX &HD4
        .Mov_EAX PickItemCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''自动走路
Sub CallGoTO(DesX As Single, DesY As Single)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EBX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EBX_DWORD_Ptr_EBX_Add &H28
        .Mov_ECX_DWORD_Ptr_EBX_Add &HF9C
        .Push 1
        .Mov_EBX EcxGoToCall1
        .Call_EBX
        .Mov_ESI_EAX
        .Lea_EAX_DWORD_Ptr_ESP_Add &H50
        .Push_EAX
        .Push 0
        .Mov_ECX_ESI
        .Mov_EBX EcxGoToCall2
        .Call_EBX
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EBX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EBX_DWORD_Ptr_EBX_Add &H28
        .Mov_ECX_DWORD_Ptr_EBX_Add &HF9C
        .Push 0
        .Push 1
        .Push_ESI
        .Push 1
        .Mov_EBX EcxGoToCall3
        .Call_EBX
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EBX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EBX_DWORD_Ptr_EBX_Add &H28
        .Mov_EAX_DWORD_Ptr_EBX_Add &HF9C
        .Mov_EAX_DWORD_Ptr_EAX_Add &H30
        .Mov_EAX_DWORD_Ptr_EAX_Add &H4
        .Mov_DWORD_Ptr_EAX_ADD &H20, Float2Int(DesX)
        .Mov_DWORD_Ptr_EAX_ADD &H28, Float2Int(DesY)
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''自动寻路
Sub CallRunTO(DesX As Single, DesZ As Single, DesY As Single, DesMapID As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EAX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EAX_DWORD_Ptr_EAX_Add &H8
        .Mov_EAX_DWORD_Ptr_EAX_Add &H88
        .Push_EAX
        .Push DesMapID
        .Mov_EAX Float2Int(DesX)
        .Mov_DWORD_Ptr_EAX EcxRunToPush
        .Mov_EAX Float2Int(DesZ)
        .Mov_DWORD_Ptr_EAX EcxRunToPush + &H4
        .Mov_EAX Float2Int(DesY)
        .Mov_DWORD_Ptr_EAX EcxRunToPush + &H8
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EAX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EAX_DWORD_Ptr_EAX_Add &H28
        .Lea_EAX_DWORD_Ptr_EAX_Add &H3C
        .Push EcxRunToPush
        .Push_EAX
        .Mov_ECX EcxRunToMov
        .Mov_EBX EcxRunTo
        .Call_EBX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''打开NPC
Sub CallNPCOpen(NPCID As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EDX_DWORD_Ptr FirstAdr
        .Push NPCID
        .Mov_ECX_DWORD_Ptr_EDX_Add &H20
        .Add_ECX &HD4
        .Mov_EAX NPCOpenCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''关闭NPC
Sub CallNPCClose()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX_DWORD_Ptr FirstAdr
        .Mov_EAX_DWORD_Ptr_EAX_Add &H1C
        .Mov_EAX_DWORD_Ptr_EAX_Add &H4
        .Mov_EAX_DWORD_Ptr_EAX_Add &H8
        .Mov_ECX_DWORD_Ptr_EAX_Add &H14
        .Push NpcCPush
        .Mov_EAX NpcCCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''购买物品
Sub CallBuy(WpID As Long, WpGZ As Long, WpSL As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Popad
        .SUB_ESP &HC
        .Mov_DWORD_Ptr_ESP WpID
        .Mov_DWORD_Ptr_ESP_ADD &H4, WpGZ
        .Mov_DWORD_Ptr_ESP_ADD &H8, WpSL
        .Push_ESP
        .Push 1
        .Mov_EAX BuyCall
        .Call_EAX
        .Add_ESP &H8
        .Add_ESP &HC
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''出售物品
Sub CallSell(WpID As Long, WpGZ As Long, WpSL As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Popad
        .SUB_ESP &HC
        .Mov_DWORD_Ptr_ESP WpID
        .Mov_DWORD_Ptr_ESP_ADD &H4, WpGZ
        .Mov_DWORD_Ptr_ESP_ADD &H8, WpSL
        .Push_ESP
        .Push 1
        .Mov_EAX SellCall
        .Call_EAX
        .Add_ESP &H8
        .Add_ESP &HC
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''打开仓库NPC
Sub CallHouseOpen()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Push 0                         '0仓库 1帮派仓库
        .Push HouseOpenPush
        .Mov_EAX HouseOpenCall
        .Call_EAX
        .Add_ESP &H8
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''仓库存物
Sub CallSaveItem(ItemNum As Long, BagGZ As Long, HouseGZ As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Push ItemNum
        .Push BagGZ
        .Push HouseGZ
        .Mov_EAX SaveItemCall
        .Call_EAX
        .Add_ESP &HC  '8
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''使用物品
Sub CallUseItem(UseItemID As Long, UseItemPos As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EDX UseItemID                  'ID
        .Mov_EAX UseItemPos                 '背包中位置
        .Push 1
        .Push_EDX
        .Push_EAX
        .Push 0
        .Mov_ESI_DWORD_Ptr FirstAdr
        .Mov_ESI_DWORD_Ptr_ESI_Add &H20
        .Lea_ECX_DWORD_Ptr_ESI_Add &HD4
        .Mov_EAX UseItemCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''死亡回城
Sub CallDeadBack()
    Dim asm As New clsASM
    With asm
        .Pushad
        .Mov_EAX DeadBackCall
        .Call_EAX
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''接任务
Sub CallGetTask(DTid As Long, rwid As Long)
    Dim asm As New clsASM
    With asm
        .Pushad
        .Push DTid
        .Push rwid
        .Mov_ECX GTaskCall
        .Call_ECX
        .Add_ESP &H8
        .Popad
        .Ret
    End With
    asm.inJect hProcId
    asm.Run_ASM hProcId, 0
    asm.Free hProcId, 0
End Sub
''发包函数
Sub CallSendPack(PackString As String)
    Dim PackCont() As Byte
    Dim pAdr As Long

    Dim Length As Long, i As Integer
    Length = Len(PackString) / 2
    ReDim PackCont(Length - 1)
    For i = 1 To Length
        PackCont(i - 1) = CByte("&H" & Mid(PackString, i * 2 - 1, 2))
    Next i

    ProcessID = OpenProcess(PROCESS_ALL_ACCESS Or PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, hProcId)
    If ProcessID Then
        pAdr = VirtualAllocEx(ProcessID, ByVal 0&, UBound(PackCont) + 1, 4096, 4)
        WriteProcessMemory ProcessID, ByVal pAdr, PackCont(0), UBound(PackCont) + 1, ByVal 0&
        
        Dim asm As New clsASM
        With asm
            .Pushad
            .Mov_EAX_DWORD_Ptr FirstAdr
            .Push UBound(PackCont) + 1
            .Push pAdr
            .Mov_ECX_DWORD_Ptr_EAX_Add &H20
            .Mov_EDX SendPackCall
            .Call_EDX
            .Popad
            .Ret
        End With
        asm.inJect hProcId
        asm.Run_ASM hProcId, 0
        asm.Free hProcId, 0
        
        VirtualFreeEx ProcessID, pAdr, 0, &H8000
        CloseHandle ProcessID
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -