成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

cs作弊器和反作弊的工作原理

2010-08-28 10:47:45來源:西部e網作者:

  Cheating-Death(以下簡稱C-D)

  和其他反作弊軟件的主要不同之處在于它不是*偵測已知作弊軟件的特征,而是嘗試讓作弊不那么有效,并防止作弊者獲取信息來防止作弊。在大多數情況下,作弊因此被阻止。

  偵測作弊的觀念

  偵測作弊聽起來簡單——如果你注意到某人正在作弊,那么就把他踢出去。問題在于沒有一種普遍的,可*的方法去把作弊軟件和別的正常的軟件區分開。因此,反作弊軟件被迫以已知作弊軟件的特征為線索搜尋作弊者。服務器端的反作弊軟件正是這樣工作:一旦發現某個作弊軟件,就把它的使用者踢掉。

  此方法的問題在于作弊軟件的作者很容易就可以修改他們的作品,使其變得不一樣。同樣,如何編寫自己的作弊器的信息很多,所以新作弊軟件層出不窮。要與之對抗,反作弊軟件采用更新已知作弊軟件列表的方法。當一個新作弊器公布后,列表立即更新。現在服務器端的反作弊軟件使用不間斷更新的作弊器列表,發現一個,踢掉一個。

  可見,這并不是一個特別好的方法。事實上,這方法相當不可*,因為它需要一個重要的條件為補充——懲罰。通常的懲罰是在服務器上禁止某玩家。言外之意是即或無法抓住所有作弊的人,你至少能阻止以往作弊的人進入服務器。這也能告誡試圖作弊的人。現在反作弊軟件擁有不斷更新的作弊軟件列表和作弊者名單,一旦發現有作弊器或有過去曾作弊的人存在,它就踢掉他。

  你或許認為這的確可行,但事實上不太有效。問題在于如果你在一個服務器上禁止了某人,他們只需進入另外的服務器即可。目前有一些全球作弊者數據庫正在運作,其中一個甚至整合進了反作弊軟件。然而,許多問題出現了:這樣做合法嗎?數據庫由誰維護?作弊者的名字在數據庫中保留多久?如果某人沒有作弊卻被放進數據庫,怎么辦?如果你不知情但你的孩子或朋友在你的機子上嘗試作弊器,怎么辦?反作弊軟件出錯導致錯誤的偵測怎么辦?如果一個服務器要禁止某人,而另一個卻不希望如此,怎么辦?誰將負責判斷這一切的一切?

  所有這些問題都對作弊者數據庫的功能性和公平性提出了質疑:可能出錯的地方很多,維護也很消耗精力。綜上所述,偵測作弊的概念瑕疵百出,必須更新。

  《半條命》如何工作

  那么如何不偵測作弊軟件的特征就能阻止作弊?要明白這點,必須首先了解一些《半條命》(以下簡稱HL——譯者)多人游戲運作的原理。當你玩HL的時候,你的電腦成為一個客戶端(Client)。客戶端負責收集你的鍵盤和鼠標指令,并繪在屏幕上。客戶端和服務器相連。服務器注意所有客戶端的狀態。它發給客戶端信息,告訴它每個人在哪里,在做什么。

  客戶端由兩部分組成,引擎和客戶端MOD。引擎處理和服務器的連接,在屏幕上繪圖,并獲取鍵盤和鼠標輸入的信息。MOD部分處理和你玩的某個特定游戲相關的事情。每個游戲都有自己的MOD。如果你裝了HL和CS,那么就會有一個HL的MOD,還有一個CS的MOD。但是只會有一個引擎。所有的MOD都使用相同的引擎。

  引擎和MOD互動使你機子上的游戲順利運行。大多數作弊軟件的原理是他們把自己楔入引擎和MOD之間。引擎和作弊器“對話”,作弊器再把信息傳遞給MOD。同樣,MOD和作弊器“對話”,作弊器再傳給引擎。引擎和MOD仍然相關聯,表面上看一切都好,其實兩者實際上在通過作弊軟件“交流”。這些作弊軟件通常被叫做“客戶端鉤子”(”clienthooks”)。

  既然作弊軟件棲身于引擎和MOD之間,它可以做它想做的任何事情。常見的事情是在屏幕上畫出額外的信息,或是讓你瞄得更準。但是它同樣可以讓你像個白癡一樣轉著圈跑,丟掉你的武器,或者自殺。完全取決于作弊軟件的作者想做什么。

  另外一種正在變得流行的做法是把作弊軟件偽裝成3D驅動程序(OpenGL或D3D)。當游戲引擎以為一切正常時,作弊程序正分析渲染數據,然后再把它傳給真正的驅動程序。(它把自己“裹wraps”在真正的驅動程序外圍。)雖然作弊器用此方法得到的信息不如直接介入引擎和MOD之間獲得的信息多,但是也足夠分析出正被繪制的任何目標的位置。同傳送鼠標和鍵盤事件的程序連接起來,此類作弊軟件也能有很高的效率。他們更難被阻擋,因為介入引擎和驅動程序之間的途徑比介入引擎和MOD之間要多得多。這些作弊軟件通常被稱為“包裝工”(“Wrapper”)。

  防止作弊

  有兩個基本的問題需要解決。第一個是引擎提供給MOD有關其他玩家位置的詳細數據。第二是必須和引擎繪圖的做法一致。

  MOD確實不需要知道玩家的確切位置。它僅僅需要知道一個玩家大概在什么位置。為了有效瞄準,作弊軟件需要知道玩家的準確位置。如果引擎并不告訴MOD玩家的準確位置,而是只告訴大概的位置,自動瞄準將會失效。

  第二個問題是要和引擎繪圖的方法一致。它由后向前繪圖。比如,如果一個玩家站在墻后,引擎先畫出玩家,然后畫出前面的墻。通常情況下,這樣做效果很不錯。問題出在如果一個作弊器已經使墻變得透明,你將能看見透明強后面的玩家。這種形式的作弊叫“穿墻”(wallhacking)。如果引擎不畫出不可見的玩家,那么透視將失效——使用穿墻程序得到的只是一堵堵透明的墻而已。


  Cheating-Death如何工作

  C-D的工作方式是把自己楔入引擎和作弊軟件之間。這正是C-D和別的反作弊軟件的不同之處。它不會在游戲外運行,而是介入到游戲內部。以下是C-D的做法:

  如果C-D偵測到某玩家對你不可見,它會把這個玩家的位置“挪”到你背后。這樣做的好處在于:首先,它使“穿墻”失效。即使你讓墻變得透明,也無法看見其后的敵人,直到敵人的某部分在屏幕上為可見。

  第二,它使雷達和ESP方塊作弊失效。ESP方塊畫在玩家頂部,會透過墻顯示。如果一個玩家蹲在墻的另一面,玩家的位置將會在墻上用ESP方塊標記出來。即使你看不見玩家,ESP方塊也能給你他們的準確位置。

  另外,C-D通過使MOD掌握的玩家位置信息不精確,從而毀掉ESP,自動瞄準或其他類似作弊功能。它并不影響“碰面判定”(collision detection),因為這是由引擎完成的,而引擎仍掌握精確數據。

  最后,C-D監控一些引擎的數據中常被作弊軟件介入修改的地方。如果C-D發現某處被改動,它會斷開玩家的連接。這樣做使作弊器無法獲得它們需要的關鍵數據,并使得它們不得不改變獲取信息的途徑——它們將無法簡單地使自己看起來正常就能騙取數據,而不得不尋求更困難的方法。

  客戶端的解決方案

  我們意識到我們無法阻止破解者破解C-D。運行在客戶端的任何東西都有可能被破解。我們最新版本的C-D最終也將被破解,況且編寫作弊軟件的人非常聰明。然而當它被破解時,我們將改變行事方法并發布新版本德C-D。讓他們有新的東西可供破解。
關鍵詞:cs
主站蜘蛛池模板: 乐山市| 吉安市| 宁化县| 清苑县| 永登县| 迭部县| 霍山县| 凤凰县| 通化县| 崇明县| 进贤县| 肇州县| 清河县| 铁岭县| 新丰县| 贵南县| 宣城市| 东丰县| 呈贡县| 安塞县| 永和县| 自治县| 邵东县| 黔江区| 芦溪县| 肥西县| 广汉市| 凯里市| 尼木县| 治县。| 麻阳| 福泉市| 沙洋县| 利辛县| 巴青县| 出国| 常德市| 枞阳县| 琼中| 黄冈市| 舟曲县|