继续上节课内容,教程请看下面:///------------------------------------///应用实战--------------------------------------------------------------------------------------------------------------------------------------------------------///需要VB API函数:///FindWindowGetWindowThreadProcessIdOpenProcessReadProcessMemoryCloseHandle///--------------------------------------------------------------------------------------------------------------------------------------------------------///相关API声明:///FindWindow///↓///Private * Function FindWindow Lib “user32“ Alias “FindWindowA“ ( ByVal lpClassName As String , ByVal lpWindowName As String ) As Long///GetWindowThreadProcessId///↓///Private * Function GetWindowThreadProcessId Lib “user32“ ( ByVal hwnd As Long , lpdwProcessId As Long )///As Long///OpenProcess///↓///Private * Function OpenProcess Lib “kernel32“ ( ByVal dwDesiredAccess As Long , ByVal bInheritHandle As Long , ByVal dwProcessId As Long ) ///As Long///ReadProcessMemory///↓///Private * 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 * Function CloseHandle Lib “kernel32“ ( ByVal hObject As Long ) ///As Long///GetCurrentProcess///↓///Private * 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 * Function FindWindow Lib “user32“ Alias “FindWindowA“ ( ByVal lpClassName As String , ByVal lpWindowName As String ) ///As Long///Private * Function GetWindowThreadProcessId Lib “user32“ ( ByVal hwnd As Long , lpdwProcessId As Long )///As Long///Private * Function OpenProcess Lib “kernel32“ ( ByVal dwDesiredAccess As Long , ByVal bInheritHandle As Long , ByVal dwProcessId As Long ) ///As Long///Private * 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 * Function CloseHandle Lib “kernel32“ ( ByVal hObject As Long ) ///As Long///Private * 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 = &H 07F68F3Timer1.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 = FalseExit ///SubEnd ///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 ///ThenTimer2.Enabled = True///Else///Timer2.Enabled = False///End ///IfIf Check2.Value ///ThenTimer3.Enabled = True///Else///Timer3.Enabled = False///End ///IfEnd SubPrivate ///Sub ///Timer2_Timer()‘ 体力值小于设定值按下数字键1///If (NowHp) < SetHp ThenSendKeys “1“End IfEnd SubPrivate Sub Timer3_Timer()‘ 魔法值小于设定值按下数字键2///If (NowMp) < SetMp ThenSendKeys “2“///End If///End Sub///教程结束,下课!///童鞋们再见!
1 楼
2012-10-16 10:47
繁花家族欢迎你~。
2 楼
2012-10-16 10:52
///落叶゛ 暖 暖じ为你顶贴!!/// 加入空白府吧!
3 楼
2012-10-16 10:54
手打教程:
条件一:必须学会易语言
条件二:准备超级模块不追封其实就是换种写挂的方法,DLL换成驱动写法!这种写法不会追封!
下面举个例子:写个简单倍攻的:写个个加密解密程序集比如我们用F1开启倍功:
新建个全局变量:进程ID然后回到启动窗口创建完毕那里写代码:
进程ID=取进程ID(“DNF.exe“)监视热键(&倍功,#F1键)新建个子程序:倍功加密(内存_驱动读写.读代码
4 楼
2012-10-16 11:03
C.Y家族欢迎你~















