第61章:外掛原理

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

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

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

“哦?是嗎?”孫軼民一臉疑惑的望着老趙。

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

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

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

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

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

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

“那第二種呢?”孫軼民問。

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

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

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

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

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

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

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

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

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

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

“呵呵,你能想到的,我們反外掛部門都想到了。構建客戶端界面採用windows子窗口?那是老古董的網遊設計師的做法了。現在的網遊界面除了一個主窗口,在其內部沒有任何一個子窗口。所有的對話框,文本框,都是採用GDI函數畫出來的,明白麼?唯一你能得到的,是遊戲主窗口的句柄號,但那沒有任何意義。”

原本對於製作戰鬥輔助程序信心滿懷的孫軼民,此時忽然遭到了沉重的打擊。可以想見,醉風月的運營方,肯定也做了這樣的防範措施。看來自己的宏大目標只能停留在構想狀態了,根本無法付諸實施。

而老趙的總結也從側面證實了這一點:“事實上通過採取這些防範措施,現在市面上真正牛逼的網遊輔助程序已經很少見。現在市面上有的輔助程序,無非就是一些按鍵精靈之類的軟件,雖然有些先進一些可以自助寫按鍵腳本,但本質上還是盲人摸象類型的。對玩家的實際幫助不大,對遊戲造成的危害也不大,基本上屬於第一種。”

孫軼民點了點頭。沉默了一會兒,擡起頭問道:“按你剛纔所說的,市面上流行的輔助外掛因爲進程名稱的關係容易被發現。那麼如果一個懂得編程的玩家,自己設計一款自己專用的輔助軟件,不在市面上流傳,對於你們來說,還是很難發現它的。”

“這是沒錯。”老趙說道,“但這無關緊要,如果只是一個玩家在用外掛,對遊戲整體上影響不大。我們也不會刻意去對付。”

孫軼民又問:“那麼你在工作過程中,有捕獲過類似第二種那麼厲害的外掛麼?”

“從來沒有,因爲這難度太高了。”老趙答道。

孫軼民點頭沉默,此時老趙仰起頭一臉好奇的望着孫軼民,問道:“咦,你問那麼多做什麼?難道你也要做外掛?”

孫軼民笑掩飾:“純屬好奇。”

老趙起身掐滅了菸蒂,提起公文包離開了。孫軼民也收拾了一下,帶着一些失落的情緒,步出了辦公室。

老趙的講解給了它很大的打擊,但此時他心中仍然有些不服與不甘。他想:“回家我再試試,或許事情並沒有老趙說的這麼難。”

出門的時候,再次碰到了黎允兒,站在公司大門口似乎在等人。沒多久,遠處一個頭發染成爆炸式紅色看不清楚容顏的瘦弱男子,騎着一輛摩托出來到停車場中,擡頭望這邊忘了一眼。擺了個奇異的手勢。

黎允兒隨機興沖沖的跑去,跨上摩托車後座,絕塵而去。

孫軼民看得一臉訝異,問老趙:“這誰啊?”

“他男朋友啊,好像是剛換的。”老趙不假思索道。

“這小小年紀的小屁孩談什麼男朋友,現在的女孩子啊,真是不可思議。”孫軼民感慨道。

“小孩的世界咱們理解不了,有代溝也是正常的。我家那女兒在學校都有了喜歡的小男生了。”老趙笑道。

“你女兒幾年級。”孫問。

“六年級,小學。”

【請到①⑦К閱讀㊣版】

第6章:馬失前蹄【222】程序泄露第29章:幽蘭操【241】鍛造受挫【298】狗血人生第86章:雪狼王【190】始亂終棄【302】重溫舊夢【246】兵臨城下【162】圖窮匕見第104章:冤家路窄第42章:昔日恩怨第36章:遊戲八卦第70章:一箭三雕第31章:風月系統第98章:齷齪大叔第17章:匆匆那年【272】調兵遣將【256】雪上加霜第53章:聊天記錄【190】始亂終棄【269】強哥捉姦第14章:黎允兒第136章:功虧一簣第124章:遊戲經濟學第114章:趙延青第54章:素素【291】秀臺春夢【152】見利忘義第19章:蟠龍山第1章:白領佳麗【149】街頭霸王【276】小別勝新婚第65章:劍走偏鋒【150】叢林法則【276】小別勝新婚【201】以惡止惡第109章:阿詩瑪【230】任重道遠第126章:賺錢機器【248】黑色恐慌【173】力單勢孤【143】藍田紫玉第71章:奔現指南【145】小蕙出師第106章:涿鹿幻戰【138】影流之主【284】蘿莉密碼【257】暗夜薔薇第66章:鍵盤俠之爭【272】調兵遣將【139】冰釋前嫌【149】街頭霸王【253】黯然銷魂第59章:程序員的靈感第59章:程序員的靈感【276】小別勝新婚【212】蔚藍海岸【184】窗口指導【159】鸞鳳分飛第100章:天外來物第95章:溫州糗事【159】鸞鳳分飛第123章:網遊生態系統【222】程序泄露【172】兵臨城下第10章:特色系統【260】了斷恩怨第130章:老趙戒菸【190】始亂終棄【150】叢林法則【195】明珠暗投【213】初冬暖陽第20章:姑瑤洞第14章:黎允兒【157】割袍斷義【146】港嫁之殤第135章:刺客DLL【222】程序泄露【172】兵臨城下【165】蓼風軒第35章:載天山【259】冤家路窄第72章:一瞥驚鴻第83章:悵然若失第135章:刺客DLL【270】越軌迷霧第20章:姑瑤洞【160】新春愉快第31章:風月系統第69章:制勝之道【165】蓼風軒【180】錦上添花第40章:生活系統第1章:白領佳麗第79章:奪寶神器第133章:採藥伴侶【232】終極接觸【183】心動之約