日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见游戏外挂分类及原理概述

發(fā)布時(shí)間:2023/12/20 编程问答 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见游戏外挂分类及原理概述 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

外掛基本概念

要理解外掛,首先需要理解網(wǎng)絡(luò)游戲的數(shù)據(jù)流。這里所說的數(shù)據(jù)流定義為游戲本地客戶端與游戲后臺(tái)服務(wù)器之間的數(shù)據(jù)流通。一個(gè)數(shù)據(jù)的產(chǎn)生需要玩家做出對(duì)應(yīng)的操作,然后經(jīng)過網(wǎng)絡(luò)傳輸同步到服務(wù)器后臺(tái),服務(wù)器后臺(tái)再處理過后再通過網(wǎng)絡(luò)反饋給玩家。

在此基礎(chǔ)上,可以將廣義上的外掛定義為:非法竄改游戲數(shù)據(jù)流的方式。非法指的是沒有法律許可,而竄改的方式包括增,刪,查,改。

狹義上的外掛就是針對(duì)數(shù)據(jù)鏈路上的節(jié)點(diǎn)的修改。比如竄改客戶端的“內(nèi)掛”,竄改網(wǎng)絡(luò)數(shù)據(jù)的“脫機(jī)掛”,竄改游戲后臺(tái)服務(wù)器的“私服”。

內(nèi)存掛實(shí)現(xiàn)原理

內(nèi)掛的目標(biāo)即為數(shù)據(jù)鏈路上的第一個(gè)節(jié)點(diǎn):游戲客戶端(包含客戶端所使用的操作系統(tǒng))。內(nèi)掛的原理一般通過增,查,改的方式來實(shí)現(xiàn),而所使用到的工具主要有調(diào)試工具(如Ollydbg),反匯編工具(如IDA),內(nèi)存查看工具(如CheateEngine)。制作內(nèi)掛,不僅要對(duì)操作系統(tǒng)有理解,而且還要深入到游戲引擎,游戲邏輯。

1. 增

以使命召喚OL為例。游戲的設(shè)定為武器可以裝配不同的配件,正常情況下,M4A1只能裝配2個(gè)配件。
?


使用調(diào)試器調(diào)試游戲,分析武器的配件邏輯,可以發(fā)現(xiàn):每次裝備配件時(shí),都會(huì)調(diào)用一個(gè)游戲函數(shù),定義為AddWeaponAttachment(作者自己的定義,下同),而這個(gè)函數(shù)的調(diào)用參數(shù)通過不斷的調(diào)試分析可以猜測(cè)為插槽Index以及配件ID,即:

AddWeaponAttachment(SlotIndex, AttachmentID)

額外調(diào)用這個(gè)函數(shù),即增加一次游戲邏輯的調(diào)用,就可以實(shí)現(xiàn)M4A1使用多個(gè)配件。
?


封裝一下這個(gè)游戲邏輯,增加背包,主武器,副武器的判斷,就可以形成一個(gè)“卡配件”的外掛。
?


第二個(gè)例子。正常游戲邏輯中,點(diǎn)擊一次鼠標(biāo)會(huì)觸發(fā)一發(fā)子彈的射擊。而在操作系統(tǒng)層面上,每點(diǎn)擊一次鼠標(biāo)游戲就會(huì)發(fā)送一次鼠標(biāo)點(diǎn)擊的消息,如果在游戲允許的游戲買賣時(shí)間范圍內(nèi)增加鼠標(biāo)點(diǎn)擊消息的發(fā)送,那么就可以實(shí)現(xiàn)武器的子彈加速,這種效果在霰彈槍上面即為明顯,可以實(shí)現(xiàn)單發(fā)射擊的霰彈槍變成連續(xù)射擊,武器致死率大大提升。


2. 查

查,即讀取操作。在游戲中有些信息是不會(huì)在界面上直接透露給玩家的,但是玩家一旦掌握這些信息就會(huì)獲得絕對(duì)的優(yōu)勢(shì)。

以棋牌類游戲的看牌器為例。
?


由于游戲邏輯的需要,玩家的底牌會(huì)在存放在內(nèi)存中,而通過內(nèi)存查看工具不斷的變更查看條件,就可以在內(nèi)存中的找到對(duì)應(yīng)的底牌記錄,知道別人的底牌之后,玩法就非常隨意了。

以FPS游戲的方框透視為例。
?


游戲邏輯會(huì)記錄戰(zhàn)局中所有玩家的坐標(biāo)信息,而通過指定的方法讀取到敵人的坐標(biāo)之后,可以用方框?qū)橙嗽谄聊恢袠?biāo)記出來,掌握敵人的位置可以率先做出預(yù)判,進(jìn)一步可以做成自瞄輔助工具。

3. 改

改即修改,即修改一切和游戲相關(guān)的信息,包括游戲數(shù)據(jù),游戲代碼,游戲文件,改的方法也就是內(nèi)掛典型的手段。

以DNF為例子,玩家在攻擊的時(shí)候會(huì)有攻擊力的疊加。同樣通過調(diào)試分析,找到角色攻擊函數(shù),定義為Attack(Target, Power),參數(shù)表示攻擊的對(duì)象以及攻擊力,外掛可以修改這個(gè)Attack函數(shù),使得Target為當(dāng)前區(qū)域內(nèi)所有怪物,Power為無窮大,那么Attack的效果即為全屏倍攻。
?


以FPS游戲?yàn)槔?#xff0c;游戲在渲染圖像的時(shí)候會(huì)使用Windows的DiretX模塊(DX游戲)。一般來說,在渲染每一幀的時(shí)候游戲邏輯會(huì)根據(jù)由遠(yuǎn)到近的順序?qū)?dāng)前屏幕內(nèi)所展示的圖像渲染出來,在最終呈現(xiàn)時(shí)會(huì)根據(jù)物體的遮擋關(guān)系真實(shí)的反映出當(dāng)前場(chǎng)景,最終覺得當(dāng)前所看到的畫面。外掛可以修改DirectX的渲染邏輯,強(qiáng)制將遮擋關(guān)系修改,那么原本應(yīng)該被遮擋的物體會(huì)在屏幕上顯示出來,形成人物透視。
?


制作內(nèi)掛需要對(duì)游戲邏輯和操作系統(tǒng)有一定的認(rèn)識(shí),必須有扎實(shí)的匯編閱讀能力以及豐富的腦洞能力,不斷的閱讀,不斷的猜想,不斷的組合才能形成功能強(qiáng)大的外掛。

網(wǎng)絡(luò)封包掛實(shí)現(xiàn)原理

網(wǎng)絡(luò)封包掛的目標(biāo)即為數(shù)據(jù)鏈路上的第二個(gè)節(jié)點(diǎn):網(wǎng)絡(luò)數(shù)據(jù)。客戶端的每一個(gè)處理都會(huì)以封包形式通過網(wǎng)絡(luò)傳往網(wǎng)絡(luò)服務(wù)器,因此竄改網(wǎng)絡(luò)數(shù)據(jù)和內(nèi)掛會(huì)得到相同的效果。使用到的工具即為封包查看工具(WPE PRO)。網(wǎng)絡(luò)封包會(huì)通過客戶端和服務(wù)器約定的協(xié)議傳輸。一般來說,游戲協(xié)議分為上下行協(xié)議,上行協(xié)議指的是客戶端發(fā)往服務(wù)器,下行協(xié)議指的是服務(wù)器發(fā)往客戶端。

1. 增

以CF為例。通過WPE分析游戲內(nèi)購買武器的協(xié)議,游戲的上行協(xié)議是請(qǐng)求游戲商城指定武器,游戲的下行協(xié)議是服務(wù)器告訴客戶端指定武器購買是否成功。

那么偽造一條游戲下行協(xié)議,里面包含指定武器購買成功的信息,無中生有,那么個(gè)人倉庫內(nèi)會(huì)多出對(duì)應(yīng)的武器。
?


2. 刪

刪除在網(wǎng)絡(luò)數(shù)據(jù)層對(duì)應(yīng)的操作可以定義為攔截。攔截對(duì)自己不利的協(xié)議。比如在RPG游戲中,會(huì)消耗“水”補(bǔ)充體力,那么“消耗”的動(dòng)作就對(duì)應(yīng)一條消耗的協(xié)議,如果攔截這條協(xié)議,那么就可以實(shí)現(xiàn)不消耗“水”而獲得體力的補(bǔ)充。

3. 查

查即查詢。再次以RPG游戲?yàn)槔?#xff0c;在第一次進(jìn)入某個(gè)地圖區(qū)域時(shí),客戶端會(huì)向服務(wù)器請(qǐng)求這個(gè)區(qū)域內(nèi)的所有游戲?qū)ο?#xff0c;包括NPC,怪,物品等,這些對(duì)象會(huì)因?yàn)橛螒騽”拘枰灰欢苤苯颖煌婕腋兄?。而外掛主?dòng)向服務(wù)器發(fā)送這個(gè)請(qǐng)求,直接將所有對(duì)象標(biāo)記出來,幫助玩家做出更優(yōu)的攻略。

4. 改

改和內(nèi)掛的改是一致的,直接體現(xiàn)就是修改封包的數(shù)據(jù)。上述的DNF全屏倍功是通過修改客戶端實(shí)現(xiàn),而在封包中也可以直接修改封包數(shù)據(jù)達(dá)到相同的效果。

內(nèi)掛注重的是游戲邏輯,而網(wǎng)絡(luò)封包掛注重的是游戲數(shù)據(jù)。相比而言,游戲的每一次更新都會(huì)讓邏輯代碼發(fā)生變化,而游戲協(xié)議的變動(dòng)會(huì)很小。因此網(wǎng)絡(luò)封包掛會(huì)比內(nèi)掛有效性會(huì)更長(zhǎng)些。

封包掛的另外一個(gè)優(yōu)勢(shì)就是,如果完全掌握了游戲協(xié)議就可以實(shí)現(xiàn)脫離客戶端---脫機(jī)掛,脫機(jī)掛完全模擬了游戲客戶端的所有操作而不占據(jù)系統(tǒng)資源。在RPG游戲中,脫機(jī)掛的優(yōu)勢(shì)很明顯。假設(shè)一臺(tái)PC機(jī)運(yùn)行客戶端一個(gè)小時(shí)可以獲取到100游戲幣,而同時(shí)運(yùn)行兩個(gè)客戶端消耗系統(tǒng)資源只能獲取到180游戲幣,而同時(shí)運(yùn)行10個(gè)脫機(jī)掛,獲取的游戲幣可以達(dá)到1000甚至更多。

私服實(shí)現(xiàn)原理

私服針對(duì)的就是數(shù)據(jù)流上的最末節(jié)點(diǎn):游戲后臺(tái)服務(wù)器。私服即非官方的盜版游戲服務(wù)器。隨便在百度上搜索私服,看到的是內(nèi)容粗糙,但充滿各種“神裝”的盜版游戲。但一個(gè)私服的出現(xiàn),意味著游戲客戶端,游戲協(xié)議,游戲后臺(tái)服務(wù)器處理邏輯,游戲后臺(tái)數(shù)據(jù)庫完全暴露了。目前沒有公開的資料顯示如何制作一款游戲的私服,私服的出現(xiàn)往往伴隨著游戲代碼泄露。

在私服里面,可以體驗(yàn)到前所未有的“上帝”體驗(yàn)。以CS游戲?yàn)槔?#xff0c;目前公開的材料中有CS客戶端,以及CS后臺(tái)程序,雖然沒有源碼,但是可以直接調(diào)試分析CS的后臺(tái)程序,找到邏輯中判斷人物生存狀態(tài)的邏輯,實(shí)現(xiàn)無敵模式。
?

總結(jié)

以上是生活随笔為你收集整理的常见游戏外挂分类及原理概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。