如何用VB開發遊戲外掛

1.
需要VB API函數:
FindWindow ←尋找窗口列表中第一個符合指定條件的頂級窗口
GetWindowThreadProcessId ←獲取與指定窗口關聯在一起的一個進程和線程標識符
--------------------------------------------------------------------------------------------------------------------------------------------------------
相關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
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要的控件:Label、Timer
-------------------------------------------------------------------------------------------------------------------------------------------------------- 自定義函數:
Dim hwnd As Long
-------------------------------------------------------------------------------------------------------------------------------------------------------- 源代碼:
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 Sub Timer1_Timer()
Dim hwnd As Long' 儲存 FindWindow 函數返回的句柄
hwnd = FindWindow(vbNullString, "Windows Media Player")' 取得進程標識符
'只要把Windows Media Player換成遊戲的名稱就可了!
If hwnd = 0 Then
Label1.Caption = "遊戲未運行"
Else
Label1.Caption = "遊戲已運行"
End If
End Sub

2.
相信大家,在製作遊戲外掛的時候,都會用到FPE、金山遊俠、GE修改器、Game Master8.0等等這些軟件,但是如今的網絡遊戲基本上都加了NP,下面來了解一下NP。知己知彼,百戰不殆嘛!
什麼是nProtect?
nProtect是設計用於保護個人電腦終端不被病毒和黑客程序感染的新概念的基於網絡的反黑客和反病毒的工具。他幫助確保所有輸入個人電腦終端的信息在網絡上不落入黑客手中。在最終用戶在執行電子貿易時,可以通過將nProtect配置在那些提供電子商務、進口貿易,電子貿易的金融機構的網站上,來提高安全等級。nProtect怎樣工作?nProtect是一種基於服務器端的解決方案並且當那些需要保護的任何網絡應用被運行時而自動啓動。nProtect被載入內存,所以最終用戶不需要安裝任何應用程序,只要nProtect啓動,就開始拒絕黑客工具和病毒的入侵!
--------------------------------------------------------------------------------------------------------------------------------------------------------
下面介紹它如何工作:
用戶登陸時nProtect自動啓動。
瀏覽器確認和自動安裝安全模塊到用戶的個人電腦。掃描黑客工具和病毒通知用戶目前的安全狀態如果有黑客工具和病毒嘗試刪除在被入侵時端駐留內存來鎖定黑客工具直到電腦或者nProtect關閉。
可惡的韓國人,把這個加進了網絡遊戲。我只能說:“呸!”
--------------------------------------------------------------------------------------------------------------------------------------------------------
下面講講躲過NP的掃描的幾個方法:
一、FPE篇
臺灣人開發的東西,哎。出名了的,沒辦法誰叫它這麼好呢!
1.先裝一個FPE把,呵呵←這個是廢話!
2.不要把安裝程序刪除,按照:開始→運行→regedit→HEKY_LOCAL_MACHINE→SOFTWARE
→jaw→FPE 打開!(問:有什麼用? 答:修改呀!)
3.運行FPE,然後在搜索裏面輸入 'jaw'(一定要家'')一般是6個地址,然後全部都選中輸入:
313131c313131(意思就是111,兩邊多輸入31就是1111!)不要關FPE!(關了就完了!)
4.修改註冊表,把註冊表裏面的jaw、FPE(FPE的是全改)關閉FPE出現對話框。(什麼鳥語不認識!呵呵)
5.將現在FPE的文件夾修改爲1112000(原來是FPE2000撒),把FPE.exe修改爲111.exe
6.然後重新安裝一次FPE也把那個DLL文件複製到你修改過的FPE文件目錄下!(呵呵!)
7.開FPE進遊戲裏面亂來拉!哈哈
--------------------------------------------------------------------------------------------------------------------------------------------------------

二、任務管理器篇
比爾·蓋茨那崽兒設計的東西,還可以在這上面派上用場!(問:是什麼東西?答WINDOWS自帶的撒!呵呵!)
1.首先用快捷鍵Ctrl+Alt+Delete/.打開任務管理器
2.查看進程,一般垃圾點的網絡遊戲會出現多的進程。你就殺了就行了!
3.沒有多的進程怎麼辦?BIN這個是大多數網絡遊戲都有的把,官方的登陸器和私服的登陸器一樣的,都是調用BIN進入遊戲。登陸器打開後,更新完畢。點擊運行遊戲,間隔幾秒殺掉登陸器的進程(這個要看你自己的計算機配置如何了,可能是2秒、可能是10秒!反正不超過15秒)這樣就可以閉屏NP拉!
呵呵又可以亂來了!
--------------------------------------------------------------------------------------------------------------------------------------------------------


三、直接篇
直接篇說白了就不用任何東西!怎麼做?跟着我眼鏡來撒!
《封神榜》知道把?(答:不知道!反答:去死!)它的保護是有的,官方都已經公佈了
但是有些人說《封神榜》沒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

發佈了47 篇原創文章 · 獲贊 1 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章