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

📄 自制游戏外挂.txt

📁 介绍游戏外挂的简单制作方法
💻 TXT
📖 第 1 页 / 共 2 页
字号:
MOUSEEVENTF_LEFTUP'鼠标松开 
MOUSEEVENTF_RIGHTDOWN '鼠标右键按下 
MOUSEEVENTF_RIGHTUP'鼠标右键松开 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
代码: 
Private Declare Sub mouse_event Lib "user32" ( ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long ) 
Const MOUSEEVENTF_LEFTDOWN = &H2 
Const MOUSEEVENTF_LEFTUP = &H4 
Const MOUSEEVENTF_MIDDLEDOWN = &H20 
Const MOUSEEVENTF_MIDDLEUP = &H40 
Const MOUSEEVENTF_MOVE = &H1 
Const MOUSEEVENTF_ABSOLUTE = &H8000 
Const MOUSEEVENTF_RIGHTDOWN = &H8 
Const MOUSEEVENTF_RIGHTUP = &H10 
'这里是 鼠标左键按下 和松开两个事件的组合即一次单击 
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 
'模拟鼠标右键单击事件 
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 
'两次连续的鼠标左键单击事件 构成一次鼠标双击事件 
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 



VB 从零开始编外挂(六) 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
应用实战 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要VB API函数: 
FindWindow 
GetWindowThreadProcessId 
OpenProcess 
ReadProcessMemory 
CloseHandle 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
相关API声明: 
FindWindow 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 

GetWindowThreadProcessId 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) 
As Long 

OpenProcess 
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 

ReadProcessMemory 
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long 

CloseHandle 
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long 

GetCurrentProcess 
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要的控件:Label、Timer(interval不为空)、Text 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
定义函数: 
Dim SetHp As Integer ' 定义设定的体力值 
Dim SetMp As Integer ' 定义设定的魔法值 
Dim NowHp As Long ' 定义目前的体力值 
Dim NowMp As Long ' 定义目前的魔法值 
Dim MaxHp As Long ' 定义角色的最高体力值 
Dim MaxMp As Long ' 定义角色的最高魔法值 
Dim DiZhi As Long '定义内存地址函数 
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
代码: 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) 
As Long 
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long 
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long 
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long 
Dim SetHp As Integer ' 定义设定的体力值 
Dim SetMp As Integer ' 定义设定的魔法值 
Dim NowHp As Long ' 定义目前的体力值 
Dim NowMp As Long ' 定义目前的魔法值 
Dim MaxHp As Long ' 定义角色的最高体力值 
Dim MaxMp As Long ' 定义角色的最高魔法值 
Dim DiZhi As Long '定义内存地址函数 

Private Function ncnr(lpADDress As Long) As Integer 
' 声明一些需要的变量 
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄 
Dim pid As Long ' 储存进程标识符( Process Id ) 
Dim pHandle As Long ' 储存进程句柄 
hwnd = FindWindow(vbNullString, "封神榜·网络版") 
' 取得进程标识符 
GetWindowThreadProcessId hwnd, pid 
' 使用进程标识符取得进程句柄 
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) 
' 在内存地址中读取数据 
ReadProcessMemory pHandle, lpADDress, ByVal VarPtr(ncnr), 4, 0& 
' 关闭进程句柄 
CloseHandle hProcess 
End Function 
Const STANDARD_RIGHTS_REQUIRED = &HF0000 
Const SYNCHRONIZE = &H100000 
Const SPECIFIC_RIGHTS_ALL = &HFFFF 
Const STANDARD_RIGHTS_ALL = &H1F0000 
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF 
Const PROCESS_VM_OPERATION = &H8& 
Const PROCESS_VM_READ = &H10& 
Const PROCESS_VM_WRITE = &H20& 


Private Sub Form_Load() 
' 体力:07F68F3 这里替换你所搜索到的地址 魔法:07F6860 同前 
DiZhi = &H07F68F3 
Timer1.Enabled = True 
Timer2.Enabled = False 
Timer3.Enabled = False 
End Sub 

Private Sub Timer1_Timer() 
Dim hwnd As Long 
hwnd = FindWindow(vbNullString, "封神榜·网络版") 

If hwnd = 0 Then 
Label12.Caption = "游戏未加载" 
Timer1.Enabled = True 
Timer2.Enabled = False 
Timer3.Enabled = False 
Exit Sub 
End If 

Label12.Caption = "游戏已加载" 
SetHp = Text1.Text ' 获取设定的体力值 
SetMp = Text2.Text ' 获取设定的魔法值 
NowHp = ncnr(DiZhi) ' 获取当前的体力值 
NowMp = ncnr(DiZhi + 12) ' 获取当前的魔法值 
MaxHp = ncnr(DiZhi + 4) ' 获取角色的最高体力值 
MaxMp = ncnr(DiZhi + 16) ' 获取角色的最高魔法值 
Label3.Caption = Str(NowHp) + "/" + Str(MaxHp) ' 显示角色体力值状态 
Label4.Caption = Str(NowMp) + "/" + Str(MaxMp) ' 显示角色魔法值状态 

If Check1.Value Then 
Timer2.Enabled = True 
Else 
Timer2.Enabled = False 
End If 
If Check2.Value Then 
Timer3.Enabled = True 
Else 
Timer3.Enabled = False 
End If 
End Sub 

Private Sub Timer2_Timer() 
' 体力值小于设定值按下数字键1 
If (NowHp) < SetHp Then 
SendKeys "1" 
End If 
End Sub 

Private Sub Timer3_Timer() 
' 魔法值小于设定值按下数字键2 
If (NowMp) < SetMp Then 
SendKeys "2" 
End If 
End Sub 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
软件截图: 

-------------------------------------------------------------------------------------------------------------------------------------------------------- 


VB 从零开始编外挂(七) 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
钩子:喜欢外挂的人都知道,很多外挂都是在游戏当中才能呼出。这个就用到了钩子 
N多人说:“哎,VB做钩子想都别想!去学C语言吧!”只要大家遇到这种人,就别理会他。 
可以说他是个垃圾。在实现钩子方面VB可能没有VC快,但是也不像那种人说的“想都别想” 
C语言,我最近几天看了看。{ } ;这些太多了。脑袋也大了!可能那些学C语言的人是接触电脑 
编程的时候就学的它吧!但是呢,我接触电脑学的就是VB。没办法我爱它! 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
好了下面介绍简单的钩子吧! 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
SetWindowsHookEx定义如下: 
Declare Function SetWindow

⌨️ 快捷键说明

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