我第一家公司是個遊戲公司,公司主要專案就是一款fps遊戲專案。14年的術後反外掛負責人離職,恰好我對此感興趣,就和領導申請接手反外掛工作。與透視、自瞄這樣的外掛功能對抗了3年,因此今天來分享一下在這3年的實踐中,積累的一些經驗和工作感悟。
fps遊戲
第一人稱射擊遊戲(First-person shooting game),從最開始的單機版半條命,到後來大火的穿越火線、到現在比較熱門的“吃雞”遊戲,都屬於fps遊戲。
玩家最關心的就是遊戲的公平性問題,然而由於外掛的存在使得一些玩家輕輕鬆鬆就開啟了“上帝模式”,因此如何反外掛就成了眾多遊戲公司最頭疼的問題。
fps遊戲外掛
fps遊戲外掛最常見的就是透視、自瞄。還有加速、飛天等型別變態外掛。因為fps遊戲大多采用開源的unreal虛幻引擎,所以基本上外掛都是通用的。本系列會揭秘一些外掛的原理,後續文章會從攻的角度來介紹。
反外掛工作
反外掛工作其實非常有趣,不斷給遊戲加固,增大遊戲外掛的開發難度。遊戲可以理解成IPO(input,process,output)過程,其實也就是透過一些輸入,比如移動滑鼠、敲鍵盤。然後透過遊戲內部處理流程,最終給到玩家一個反饋,比如移動了、受傷了等等。常見的外掛,比如透視就是修改了output,加速飛天就是修改了process。
反外觀主要有:反除錯、加殼、程式碼完整性檢測、外掛特徵檢測。本系列會從防的角度來介紹。
工作感悟
從事反外掛,技術提高了很多,對底層知識加深了了解,比如模組的載入流程、反彙編、各種除錯技巧。對後續工作也有很大幫助。不過小公司的反外掛沒有錢途,幾年內工資原地踏步,後來又轉回服務端開發。
為什麼?因為這份工作很難做出成績,平時你鑽研技術,研究同行的防禦手法,遊戲風平浪靜,很難顯出你的功能,看起來很清閒。據我所知,一些同行不會在“第一時間”封外掛,而是放一放,再“救火”。
根據典記,魏文王曾求教於名醫扁鵲:“你們家兄弟三人,都精於醫術,誰是醫術最好的呢?”扁鵲:“大哥最好,二哥差些,我是三人中最差的一個。”
魏王不解地說:“請你介紹的詳細些。”
扁鵲解釋說:“大哥治病,是在病情發作之前,那時候病人自己還不覺得有病,但大哥就下藥剷除了病根,使他的醫術難以被人認可,所以沒有名氣,只是在我們家中被推崇備至。
“我的二哥治病,是在病初起之時,症狀尚不十分明顯,病人也沒有覺得痛苦,二哥就能藥到病除,使鄉里人都認為二哥只是治小病很靈。
”我治病,都是在病情十分嚴重之時,病人痛苦萬分,病人家屬心急如焚。此時,他們看到我在經脈上穿刺,用針放血,或在患處敷以毒藥以毒攻毒,或動大手術直指病灶,使重病人病情得到緩解或很快治癒,所以我名聞天下。”
全網同名,歡迎關注~