第61章 外掛原理(1 / 2)

加入書籤

老趙剛才提到的外掛一詞也激起了孫軼民的好奇。關於遊戲外掛,自打孫軼民進入公司與老趙共事以來,通過耳濡目染也大致有個概念上的了解。畢竟老趙的崗位負責了《天問》工程的服務器安全這一塊。

但是關於外掛程序實現的具體細節,他並不是特別清楚。此時便好奇跟老趙打聽了起來「你給我科普一下看,遊戲外掛具體是如何工作的?篡改服務器上的數據嗎?」

「嚴格上說確實是這樣,」老趙解釋道,「對於網遊來說,外掛程序準確的定義指通過黑客手段串改服務器遊戲數據,或者利用遊戲設計上的漏洞實現諸如穿牆,瞬移之類的非法操作,從而為玩家謀取利益的作弊程序或軟件。從本質上講,她就是一種黑客攻擊軟件,是非法的。但是這種程序隻存在於網遊剛剛流行的那個時代。如今隨著網遊安全技術的不斷提升,這樣的外掛程序基本上不存在。」

「哦?是嗎?」孫軼民一臉疑惑的望著老趙。

老趙慢條斯理的繼續解釋道「現在市麵上流傳的大多數所謂外掛,其實根本不算真正意義上的外掛,它頂多隻能叫做遊戲輔助程序。因為它不能篡改服務器數據,也不會對服務器造成損害或增加額外的負擔。它的作用是幫助玩家提高遊戲操作的效率,速度,從而占據優勢。比如說一些輔助城西可以代替玩家手動操作,從而提高角色的行動速度與精準性,等等。這些輔助程序一定程度上造成了對其他玩家的不公平,因此作為網遊運營者來說,對此還是要反對與杜絕的。」

孫軼民琢磨了老趙這一番話,大致明白了其中的含義。想來,自己近日在計劃著手製作的一個可以在醉風月中操作他的霸王角色自動戰鬥的程序,也並不屬於什麼非法外掛,而是一種輔助程序而已。因為孫軼民根本沒有想過要去黑遊戲服務器或者篡改數據,他隻是希望借助這一輔助程序來提升操作速度與戰鬥效率。

但是這個工程他目前隻完成了一小部分——用程序代替手指自動按鍵的功能,剩餘關鍵部分如何實現,他還沒開始好好琢磨。今日是個不錯的機會,他想借此好好請教一下老趙,看看是否能在技術方麵獲得一些有用的信息。

「那你能不能說說,現在那種遊戲輔助程序,具體是如何工作的呢?」孫軼民問。

「目前的輔助程序分兩種,」老趙重新坐了下來點上煙,緩緩吐出一口深灰色的煙氣之後,他解釋道「其中第一種是最原始的模擬按鍵程序,這種工作原理很簡單,無非是用程序向遊戲窗口傳送虛假的按鍵信息,從而代替手工按鍵。它不能解讀從遊戲服務器返回的信息從而判斷遊戲角色自身的狀態與各種屬性數值,隻能傻乎乎的按照設定好的順序發送虛擬按鍵,僅此而已。說白了,他的作弊效果非常有限,對遊戲造成的不公平性也不大。對於這種,我們一般都不太去管。」

孫軼民暗想,這種輔助程序功能確實連菜鳥程序員都會都會,自己昨晚就做出來了。然而對於他的遠大目標來說,這並沒什麼卵用。

「那第二種呢?」孫軼民問。

「另一種就比較高端了,技術含量也比較高。它可以解讀遊戲客戶端接收到的數據,或者從客戶端程序虛存中讀取各種遊戲數據,然後從這些數據中解譯出各種遊戲信息,比如角色當前的生命值,技能冷卻狀態,自己的增益或受控狀態等等。然後根據這些信息,讓程序操縱遊戲角色隨機應變,作出合適的動作或操作。舉個簡單的例子來說輔助程序會判斷自身角色的剩餘生命值是否低於某個閾值,如果是,那麼自動服用生命恢復藥劑。」

「那麼輔助程序如何操縱角色動作?」孫問。

「有些輔助程序可以偽造數據報發送給服務器,從而可以取代遊戲的客戶端直接操作角色行動。但是這種製作難度高,而且很容易被發現,一旦被發現角色就容易被封號。所以現在大多數的外掛都是通過向遊戲客戶端發送模擬的按鍵信息的方式來驅動角色的動作,也就是說,客戶端必須存在。這種操作方式從本質上不屬於非法操作,因此比較難被監測到。」

「那你們是如何防範這些輔助程序作弊的呢?」孫軼民用右手柱起腦袋,望著老趙,好奇的問。

對此,老趙耐心的解釋了一番「對於第二種,最關鍵的措施就是對於傳輸的數據進行加密了,加密方式越高級越安全。就現在而言,基本上沒人能夠破解這種傳輸方式的,所以,這種外掛的製作難度非常高。對於第一種的話,隻能從客戶端著手,讓客戶端程序檢測收到的按鍵信息是否虛構,但這個其實很難預防,因為聰明的程序員完全可以把窗口消息模擬的真假難辨。不過我們還有另外一種方法,那就是掃描客戶端所在電腦的進程列表,找出市麵上常見的那種按鍵外掛的進程名稱,上報給服務器就行了。」

「加密?難道以前的遊戲都是明碼傳輸數據的?」孫問。

「嗯。以前的網遊數據傳送方式基本不加密,或者加密方式非常簡單,很容易被人破解,所以導致輔助程序泛濫。但現在情況不一樣了。它在數據傳輸方麵采用了更復雜更強壯的加密方式,因此你想通過解讀數據報來獲取遊戲數值是難上加難,更別說想通過程序向服務器發送模擬的遊戲數據了。」

「正如你剛才提到的,除了解讀客戶端接收到的數據包,還可以通過鎖定關鍵遊戲數據的虛存地址來獲取遊戲數據啊?」孫軼民脫口而出。

「虛存中存儲的遊戲數據也是經過加密轉換的,不知道加密方式和密碼,你根本就沒辦法去分析,還談什麼鎖定內存地址?」老趙笑道。

孫軼民愕然。思索良久,又想到了一點,問道「其實除了解讀數據報和分析虛存地址,還有一種方法也可以獲取數據,那就是通過子窗口句柄。比如說,我想讓程序獲取我的角色身上攜帶的金幣數量,那麼我可以先鎖定包裹界麵的子窗口句柄,然後通過句柄號調用ai函數,就可以獲取此子窗口上的任何數據。不是麼?」

「嗬嗬,你能想到的,我們反外掛部門都想到了。構建客戶端界麵采用i

↑返回頂部↑

書頁/目錄

本章報錯

遊戲相关阅读: 入骨暖婚 最強兵王混花都 入骨暖婚:總裁好好愛 專屬偏愛:冷少情定寶貝妻 蝕骨纏綿:癡情闊少強寵妻 鬥羅之我成了朱竹清的伴讀 美劇之我是弗蘭克老爹 紀宋之始 纏綿入骨:總裁好好愛 纏綿入骨:總裁好好愛