標籤:
全面分析遊戲防止多開的原理,與遊戲實現多開的方法。進程隱藏,視窗標題修改,連接埠隱藏,多個遊戲目錄,多個作業系統帳號,互斥體,記憶體對應檔,DLL全域共用等方法實現遊戲多開。
研究遊戲多開已經有一年多的時間了,其實要實現遊戲多開也不是一件很難的事情,只要大家懂得遊戲防止多開的原理,然後根據其對應遊戲多開的方法便可以做出遊戲多開器來了。下面為大家總結一下遊戲多開的原理與方法:
用了一年的時間換來了這篇遊戲多開的文章:
如果大家需要轉寄的,請標明出處:小魚工作室謝謝。
第一,進程隱藏
部分遊戲通過探測遊戲用戶端進程是否已經存在來防止重複開啟,如遊戲:英雄美人
遊戲多開的辦法為啟動一個遊戲用戶端後,將該遊戲的進程隱藏,只保留一個或多個。
第二,視窗標題修改(使用FindWindow API函數)
部分遊戲通過探測遊戲用戶端的視窗是否已經存在來防止重複開啟。
遊戲多開的辦法為將遊戲的視窗修改為任一字元。
第三,連接埠隱藏
部分遊戲通過預設開啟TCP或者UDP連接埠監聽,開第二個遊戲的時候會開啟連接埠失敗從而判斷遊戲是否多開。
遊戲多開的方法為此類需要採用netstat –a –n –o 命令查看連接埠即可實現遊戲多開。
第四,多個遊戲目錄
部分遊戲通過獨佔檔案訪問來防止重複開啟。
遊戲多開的方法為複製遊戲用戶端到另外的檔案夾,在另外的檔案夾開啟即可。
第五,多個作業系統帳號(僅限XP系統)
部分遊戲通過限制一個使用者只能開啟一個遊戲來防止重複開啟。
遊戲多開的方法為在系統帳號裡面多建立帳號,一個遊戲使用一個帳號。方法如下:
1、開啟控制面版→使用者帳戶→建立一個新帳戶→輸入新帳戶名稱(下一步)→建立帳戶;
2、然後到案頭的遊戲快捷表徵圖上右鍵到[屬性] 選[進階] 把裡面[以其他使用者身份運行]這個選項勾上 開第2個程式的時候記得用你建立的使用者進就可以了,省的老去切換使用者了。
第六,互斥體。
部分遊戲通過互斥對象/訊號量/事件等線程同步對象來確定程式是否已經運行。最常用的函數如:CreateMutexA。
1、首先建立一個互斥體,CreateMutex函數,第一個參數可以設定為NULL,第二個參數必須設定為false,第三個參數表示互斥體的名稱,這個名稱最好有一些特殊標識以防止與其他應用程式衝突,比如程式名+時間。
2、使用GetLastError()函數判斷錯誤資訊是否為ERROR_ALREADY_EXISTS,如果是,則表示程式已經啟動。
遊戲多開的方法有二種,一為發現互斥體,然後關閉互斥體即可實現多開。二為APIHOOK,接收到錯誤資訊時,加重設命令(置錯誤碼=0)即可。QQ遊戲,天龍八部==最常見的類型
第七,記憶體對應檔(File Mapping)
部分遊戲通過把程式執行個體資訊放到跨進程的記憶體對應檔中,防止遊戲多開。
遊戲多開的方法為攔阻該函數,不讓它命名核心檔案即可實現多開。
第八,DLL全域共用
DLL全域共用區在映射到各個進程的地址空間時僅被初始化一次,且是在第一次被windows載入時,所以利用該區資料就能對程式進行多開限制。
遊戲多開的方法為DLL劫持讓遊戲一開始運行就載入你的DLL,再轉到原來的dll上就可以實現多開了。
第九,使用公用檔案
程式啟動時,在一個公用目錄(比如C:\或者Temp目錄)中建立一個公用檔案,並將此檔案設定為不共用讀寫。第二個程式啟動時,也開啟此檔案,如果開啟成功,則表示程式未啟動過,否則表示程式已經啟動。
遊戲多開的方法為:手動設定多開,比如:設定檔案存取權限,不允許此程式在公用目錄建立檔案等。
第十,Mac地址驗證
登陸伺服器時,擷取本機mac地址,發送至伺服器端,服務端進行mac地址驗證,如果mac地址重複登陸,則不允許同伺服器進行訊息傳遞。
多開遊戲的多法為:使用超級兔子等軟體修改mac地址實現多開,針對此情況,本人也寫了一個修改Mac地址的小工具,大家可以在網站下載。
第十一,查看網路連接
擷取本機所有網路連接,使用GetTcpTable擷取TCP串連,使用GetUdpTable擷取UDP串連,檢查是否有串連到伺服器IP和連接埠號碼的串連,如果有,表示程式已經啟動,否則程式未啟動。需要注意的是,其擷取的ip和連接埠號碼都是一個DWORD值,並且高低位相反。IP地址可以通過inet_addr函數將字串形式的IP地址(如“127.0.0.1”)轉換為DWORD型的,連接埠號碼可以使用以下公式轉換:DWORD dwPort = ((nPort & 0xff) << 8) + ((nPort & 0xff00) >> 8);
多開遊戲的方法為:掛系統鉤子,導致GetTcpTable函數失敗實現多開。
遊戲防止多開的方法有時候並不是只用一個方法的,多數遊戲都會用多種方法一起來防止多開的,只要大家都懂得這幾個遊戲多開的原理,靈活運行,一個一個分析排查,基本上都能解決各種遊戲多開了,如果大家還有什麼更好的方法,歡迎跟帖、交流一下。
遊戲多開的原理