标题:关于游戏外挂接受按键的问题
只看楼主
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
结帖率:100%
已结贴  问题点数:10 回复次数:7 
关于游戏外挂接受按键的问题
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, lpBaseAddress As Any, 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 Const PROCESS_ALL_ACCESS = &H1F0FFF

Private Sub Command1_Click()
If Command1.Caption = "启动" Then
    Timer1.Enabled = True
    Command1.Caption = "关闭"
   
Else
    Timer1.Enabled = False
    Command1.Caption = "启动"
    Label1.Caption = "外挂关闭"
End If
End Sub

Private Sub Timer1_Timer()
Dim aa As Long
Dim pid As Long
Dim aa2 As Long
Dim hp As Long
Dim py As Long
aa = FindWindow(vbNullString, "element client")
If aa Then
    Label1.Caption = "外挂开启"
Else
    Label1.Caption = "连接游戏失败"
End If
GetWindowThreadProcessId aa, pid
aa2 = OpenProcess(PROCESS_ALL_ACCESS, False, pid)

ReadProcessMemory aa2, ByVal &H9CFFE0 + &H1C, py, 4, 0&
ReadProcessMemory aa2, ByVal py + &H24, py, 4, 0&
ReadProcessMemory aa2, ByVal py + &H260, hp, 4, 0&

Label2.Caption = hp
if hp<2000 then
    sendkeys "1"
endif
End Sub
'红色部分是当血量低于2000时。。我游戏中点击1来回血。。可是这个1在游戏聊天框中可以出现。。却不会自己用药物。。请问有什么方法来代替sendkeys的功能。。使其在游戏中能得到实现
搜索更多相关主题的帖子: 外挂 游戏 
2010-08-03 14:53
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:3 
postmessage

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-03 17:04
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
得分:0 
回复 楼主 husiwen
这和sendkeys是一个原理的吧。。试过无效
2010-08-03 20:08
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
什么游戏?你再最后试试SENDMESSAGE吧,估计够呛。
还不行只能用驱动级模拟按键了

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-03 20:32
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:3 
现在一般游戏都加了按键状态检测,就是说只用发送消息难以欺骗它了。
可以用SendInput模拟按键试试,这个一般都能对付。缺点就是不能后台。

要想利用发送消息,首先得把几个键盘状态检测的函数给HOOK掉,然后在
游戏检测调用时返回虚假状态。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-03 22:38
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:3 
又见东海一鱼兄,上次东海兄的引导我现在可以搞出后台Call了,呵呵。。。楼主也学习下后台call这种方法吧。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-08-03 22:56
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
得分:0 
回复 5楼 东海一鱼
怎么处理啊。。才接触api。。很多都不懂
2010-08-04 00:58
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:0 
to ioriliao:
嗬嗬,恭喜了。

to husiwen:
那就先下个MSDN看看吧,希望对你的‘功力’提升有帮助。


举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-04 17:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-314706-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.313872 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved