資源描述:
《游戲外掛教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在幾年前我看到別人玩網(wǎng)絡(luò)游戲用上了外掛,做為程序員的我心里實在是不爽,想搞清楚這到底是怎么回事。就拿了一些來研究,小有心得,拿出來與大家共享,外掛無非就是分幾種罷了(依制作難度):1、動作式,所謂動作式,就是指用API發(fā)命令給窗口或API控制鼠標(biāo)、鍵盤等,使游戲里的人物進行流動或者攻擊,最早以前的“石器”外掛就是這種方式。(這種外掛完全是垃圾,TMD,只要會一點點API的人都知道該怎么做,不過這種外掛也是入門級的好東東,雖然不能提高你的戰(zhàn)斗力,但是可以提高你的士氣^_^)2、本地修改式,這種外掛跟傳統(tǒng)上
2、的一些游戲修改器沒有兩樣,做這種外掛在編程只需要對內(nèi)存地址有一點認識并且掌握API就可以實現(xiàn),“精靈”的外掛這是這種方式寫成的,它的難點在于找到那些地址碼,找地址一般地要借助于別人的工具,有的游戲還有雙碼校驗,正正找起來會比較困難。(這種外掛,比上一種有一點點難度,但是這種外掛做起來能夠用,也是有一定難度的啦~~,這種外掛可以很快提升你對內(nèi)存地址的理解及應(yīng)用,是你編程技術(shù)提高的好東東)3、木馬式,這種外掛的目的是幫外掛制作者偷到用戶的密碼(TMD,“爛”就一個字,不過要知已知彼所以還是要談一下啦~~),
3、做這種外掛有一定的難度,需要HOOK或鍵盤監(jiān)視技術(shù)做底子,才可以完成,它的原理是先首截了用戶的帳號或密碼,然后發(fā)到指定郵箱。(我以前寫過這樣的東東,但是從來沒有用過,我知道這種東東很不道德,所以以后千萬別用呀!~~)4、加速式,這種外掛可以加快游戲的速度……(對不起大家,這種東東我沒有實際做過,所以不能妄自評,慚愧~~)5、封包式,這種外掛是高難度外掛,需要有很強的編程功力才可以寫得出來。它的原理是先截取封包,后修改,再轉(zhuǎn)發(fā)(Kao,說起來簡單,你做一個試試~~~~)。這種外掛適用于大多數(shù)網(wǎng)絡(luò)游戲,像W
4、PE及一些網(wǎng)絡(luò)游戲外掛都是用這種方式寫成的,編寫這種外掛需要apihook技術(shù),winsock技術(shù) 這幾種外掛之中,前三種可以用VB,DELPHI等語言比較好實現(xiàn),后兩種則要用VC等底層支持比較好的編程工具才好實現(xiàn)?,F(xiàn)在就依次(制作難度)由淺到深談?wù)勎覍ν鈷熘谱鞯囊恍┱J識吧~~~~首先,先來談一下動作式的外掛,這也是我第一次寫外掛時做的最簡單的一種。記得還在“石器”時代的時候,我看到別人掛著一種軟件(外掛)人物就可以四外游走(當(dāng)時我還不知道外掛怎么回事^_^),于是找了這種軟件過來研究(拿來后才聽別人
5、說這叫外掛),發(fā)現(xiàn)這種東東其實實現(xiàn)起來并不難,仔佃看其實人物的行走無非就是鼠標(biāo)在不同的地方點來點去而已,看后就有實現(xiàn)這功能的沖動,隨后跑到MSDN上看了一些資料,發(fā)現(xiàn)這種實現(xiàn)這幾個功能,只需要幾個簡單的API函數(shù)就可以搞定:VB從零開始編外掛(一)----------------------------------------------------------------------------------------------------------------------------------
6、----------------------需要VBAPI函數(shù):FindWindow???????????????←尋找窗口列表中第一個符合指定條件的頂級窗口GetWindowThreadProcessId???←獲取與指定窗口關(guān)聯(lián)在一起的一個進程和線程標(biāo)識符----------------------------------------------------------------------------------------------------------------------------
7、----------------------------相關(guān)API聲明:FindWindow↓PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLongGetWindowThreadProcessId↓PrivateDeclareFunctionGetWindowThreadProcessIdLib"user32"(ByVal
8、hwndAsLong,lpdwProcessIdAsLong)AsLong--------------------------------------------------------------------------------------------------------------------------------------------------------需要的控件:Label、Timer----------------