外掛思考

簡單思路
  1. 簡單而言就是通過外掛程序以某種方式影響到遊戲程序,從而改變遊戲程序的運行邏輯,達到期望的效果。
    例如對於網絡遊而言,常見的方式就是截取並修改遊戲發送到遊戲服務器的數據,例如通過改變 call 的內容等方式,從而使遊戲服務器返回我們期望的數據來達到功能的增強。
    而對於單機遊戲而言,常見的就是修改遊戲存儲在本地計算機內存或者硬盤上內數據從而達到功能的增強。
  2. 網絡遊戲也是聯網程序,現在的網絡遊戲多是基於Internet上客戶/服務器模式,這種模式的通訊方式一般是採用 TCP/IP 通信協議,數據交換是通過 IP 數據包的傳輸來實現,一般而言客戶端發送給服務器的請求如攻擊,移動等都是通過封包的形式和遊戲服務器進行數據的交換。
    那麼我們需要做的就是在發送給遊戲服務器之前,截取這個數據包,解析這個數據包的內容,更改數據包中我們期望的部分,而後再發送給遊戲服務器。那麼,遊戲服務器就會返還含有我們期望值的數據包到客戶端,從而實現了修改遊戲的目的。
  3. 除了修改遊戲封包的方式,我們也可以修改客戶端有關的程序來達到目的。這是因爲一般而言遊戲服務器的運算能力是有限制的,且頻繁的將數據包往返於客戶端和服務器之間會產生更多的延遲(卡頓),故而無法將所有玩家的所有操作的運算都放到遊戲服務器內運行。
    因此有一些程序的運算需要依賴客戶端輔助完成,故而我們可以對遊戲客戶端進行脫殼來發現一些程序的判斷分支,通過跟蹤調試的方式從而把一些對我們不利的判斷去掉,以此來達到我們的目的。
  4. 舉例:
    在某個遊戲中,倘若我們在遊戲中執行 1 下攻擊操作,正常情況下,服務器接收到 1 下攻擊操作後響應回來的數據是掉 100 滴血。
    但是我們修改了這個傳送的數據包,將其中的 1 修改爲 10 並且發送給了遊戲服務器,那麼遊戲服務器就會響應掉 1000 滴血到我們的客戶端。
    當然,這裏面還有服務器端的數據校驗,邏輯檢驗等,這則是關於反檢測部分的內容了。
  5. 簡而言之
    1. 對於單機遊戲的外掛製作,由於數據全部在本地運行,故而直接在內存中找到目標數據,進行修改即可。當然,這其中可能會有數據加密等阻撓處理。
    2. 對於聯網遊戲而言,修改數據往往風險較大,可以採用邏輯修改,即對往來於客戶端和服務端的封包進行邏輯處理,同時,也可以讀取聯網遊戲運行在本機內存中的數據,輔助我們進行封包邏輯修改,常見的如讀取一定範圍內某些目標的座標等。
  6. 當然,遊戲的外掛在進步,遊戲的反外掛機制也在進步。作爲遊戲開發者也要更多的瞭解一些外掛的製作思路,在開發遊戲的同時就儘量的避免可能出現的漏洞,使遊戲儘可能的少受到外掛的影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章