第一范文网 - 专业文章范例文档资料分享平台

一天一天学外挂详细教程(VB) - 图文

来源:用户分享 时间:2025/5/24 11:08:05 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

'参数决定了对进程的存储权限,使用完全控制

Public Const PROCESS_ALL_ACCESS = &H1F0FFF '发送信息的函数

Public Declare Function SendMessage Lib \Alias \(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function PostMessage Lib \Alias \(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long '延迟函数

Public Declare Sub Sleep Lib \(ByVal dwMilliseconds As Long)

发送消息函数和延迟函数是以前内容没有用过的,这回我们将涉及发送模拟键盘消息给窗口,所以加入这两个函数。

3.做好模块,下一步该写Form了。同样还是声明一些变量及Form_Load,代码如下: Dim hwd As Long Dim pid As Long

Dim hProcess As Long '存放进程句柄 Dim base As Long '存放人物基地址 Dim hp As Long '存储生命值 Dim hpmax As Long '存储生命最大值 Dim mp As Long '存储真气值 Dim mpmax As Long '存储真气最大值

Private Sub Form_Load()

hwd = FindWindow(\Window\\Client\If hwd = 0 Then

MsgBox \未启动游戏\vbOKOnly, \提示\ Unload Form1 End If

GetWindowThreadProcessId hwd, pid '获取进程标识符 '将进程标识符做为参数,返回目标进程PID的句柄,得到此句柄后 '即可对目标进行读写操,PROCESS_ALL_ACCESS表示完全控制,权限最大 hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid) If hProcess = 0 Then

MsgBox \不能打开进程\vbOKOnly, \提示\ Unload Form1 End If

CloseHandle hProcess End Sub

4.下一步,我们通过TimerList显示人物信息,设置TimerList的Interval属性值为1000,其代码如下:

Private Sub TimerList_Timer() '显示人物信息时钟 Dim name(31) As Byte '存储人物名称 Dim name_temp As Long

hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid) If hProcess Then

ReadProcessMemory hProcess, ByVal &H8C9E54, base, 4, 0&

ReadProcessMemory hProcess, ByVal base + &H24, base, 4, 0& '得到为人物基地址,方便以后使用

ReadProcessMemory hProcess, ByVal base + &H254, hp, 4, 0& '得到生命值 ReadProcessMemory hProcess, ByVal base + &H26C, hpmax, 4, 0& '得到生命最大值

ReadProcessMemory hProcess, ByVal base + &H258, mp, 4, 0& '得到真气值 ReadProcessMemory hProcess, ByVal base + &H270, mpmax, 4, 0& '得到真气最大值

ReadProcessMemory hProcess, ByVal base + &H390, name_temp, 4, 0& ReadProcessMemory hProcess, ByVal name_temp, name(0), 32, 0& '得到人物名称

CloseHandle hProcess End If

Frame1.Caption = name '显示人物名称

Label2.Caption = \生命值:\& hp & \& hpmax '显示生命值 Label3.Caption = \真气值:\& mp & \& mpmax '显示真气值 End Sub

现在可以运行一下看看数值是否能正常显示!

5.在来做第二个TimerAdd,设置Enabled = False,Interval属性值为100,期代码如下:

Private Sub TimerAdd_Timer() '加血判断时钟

If Val(Text1.Text) > hp Then '比较当前血量是否比预定值低,是则按下F1健 SendMessage hwd, &H100, &H70, 0& '按住F1键,&H100代表按下,&H70代表F1

SendMessage hwd, &H101, &H70, 0& '松开F1键,&H101代表松开,&H70代表F1

Sleep Val(Text2.Text) '延迟text2中的数值,用val()取数值 End If End Sub

6.最后就剩下Command了,设置其Caption属性为“开始”,期代码如下: Private Sub Command1_Click()

If Command1.Caption = \开始\Then '按下标签为“开始”的按钮,激活TimerAdd并改变标签为“停止”

TimerAdd.Enabled = True Command1.Caption = \停止\

ElseIf Command1.Caption = \停止\Then '刚好和上面相反 TimerAdd.Enabled = False Command1.Caption = \开始\End If End Sub

7.小功告成!运行测试看看,能否实现加血功能!那加蓝、补助技能呢?嘻嘻~~~

搜索更多关于: 一天一天学外挂详细教程(VB) - 图文 的文档
一天一天学外挂详细教程(VB) - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7zd6k8gk0q7f2vc1ufwx_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top