VB编写外挂(续)

来源:互联网 发布:现在最常用的编程语言 编辑:程序博客网 时间:2024/06/03 23:48
三、直接篇 
直接篇说白了就不用任何东西!怎么做?跟着我眼镜来撒! 
《封神榜》知道把?(答:不知道!反答:去死!)它的保护是有的,官方都已经公布了 
但是有些人说《封神榜》没NP,(注意:NP现在就是保护的代名词了!)别听那些人的! 
首先,运行登陆器(更新的那个)进入游戏。关闭用登陆器进入的游戏马上运行Game.exe 
呵呵,没NP了。FPE等东西可以乱来了。魔法叠加、免负重等等都可以实现! 
还有一种就是DAT文件或者BIN文件直接修改为EXE。呵呵! 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 


四、编程篇(VB、VC、DELPHI等等!) 
怎么办呢?呵呵,我不懂怎么编VC和DELPHI的。***我就喜欢VB怎么着? 
VB可以简单的实现虚拟nProtect的消息发送。具体的就不说了! 
一句话虚拟nProtect消息(你不等于没说嘛!)-_-!呵呵这个嘛......! 
代码就不写了,麻烦。就像用WPE这些发包一样的原理


3.
躲避了NP的扫描现在就可以模拟了! 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要VB API函数: 
keybd_event ←函数模拟了键盘行动 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
相关API声明: 
keybd_event 
↓ 
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要的控件:Timer(interval不为空) 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
代码: 
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 
Private Sub Timer1_Timer() 
Call keybd_event(82, 0, 0, 0) '模拟按下"R"键 
End Sub 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
其它模拟: 
方法一: 
AppActivate sTitle 
SendKeys "5" 
方法二: 
AppActivate sTitle 
SendKeys vbKey5 
方法三: 
SendMessage Hwnd, WM_KEYDOWN, vbKey5, 0& 
SendMessage Hwnd, WM_KEYUP, vbKey5, 0& 
方法四: 
AppActivate sTitle 
keybd_event 53, 0, 0, 0 
keybd_event 53, 0, KEYEVENTF_KEYUP, 0 
方法五: 
PostMessage lHwnd, WM_KEYDOWN, vbKey5, 0& 
PostMessage lHwnd, WM_KEYUP, vbKey5, 0& 


4.
添加快捷键 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要VB API函数: 
GetAsyncKeyState ←判断函数调用时指定虚拟键的状态 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
相关API声明: 
GetAsyncKeyState 
↓ 
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer 
Private Function MyHotKey(vKeyCode) As Boolean 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要的控件:Timer(interval不为空) 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
代码: 
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer 
Private Function MyHotKey(vKeyCode) As Boolean 
MyHotKey = (GetAsyncKeyState(vKeyCode) < 0) 
End Function 
'然后在循环中或Timer的Timer事件中检测: 
Private Sub Timer1_Timer() 
If MyHotKey(vbKeyA) And vbKeyControl Then 'ctrl+A 
End '关闭 
End If 
'其中vbkeyA是键盘″A″的常数,其他键可按F1查得。 
End Sub 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
其它方法: 
比如按下"ctrl+A"就退出! 
'可以设置Form的KeyPreview属性为True,然后在Form_KeyDown事件中添加代码: 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 
If KeyCode = Asc("A") And Shift = vbCtrlMask Then unload me '如果ctrl+A键被按下就退出 
End Sub 


5.
前边谈了模拟键盘,下面说说模拟鼠标。 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
需要VB API函数: 
mouse_event ←模拟一次鼠标事件 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
相关API声明: 
mouse_event 
↓ 
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 
-------------------------------------------------------------------------------------------------------------------------------------------------------- 
MOUSEEVENTF_LEFTDOWN'鼠标左键按下 
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 
原创粉丝点击