很多玩游戲的朋友都喜歡多開,大型游戲像cf,就連qq游戲大廳也想著多開,其實沒多大意思,西西今天給大家分享游戲多開的原理,一起學習下吧!
其實要實現(xiàn)游戲多開也不是一件很難的事情,只要大家懂得游戲防止多開的原理,然后根據(jù)其對應游戲多開的方法便可以做出游戲多開器來了。
游戲多開的原理與方法:
第一,進程隱藏
部分游戲通過探測游戲客戶端進程是否已經(jīng)存在來防止重復打開,如游戲:英雄美人游戲多開的辦法為啟動一個游戲客戶端后,將該游戲的進程隱藏,只保留一個或多個。
第二,窗口標題修改(使用FindWindow API函數(shù))
部分游戲通過探測游戲客戶端的窗口是否已經(jīng)存在來防止重復打開。游戲多開的辦法為將游戲的窗口修改為任意字符。
第三,端口隱藏
部分游戲通過默認打開TCP或者UDP端口監(jiān)聽,開第二個游戲的時候會打開端口失敗從而判斷游戲是否多開。游戲多開的方法為此類需要采用netstat –a –n –o 命令查看端口即可實現(xiàn)游戲多開。
第四,多個游戲目錄
部分游戲通過獨占文件訪問來防止重復打開。
游戲多開的方法為復制游戲客戶端到另外的文件夾,在另外的文件夾打開即可。
第五,多個操作系統(tǒng)賬號(僅限XP系統(tǒng))
部分游戲通過限制一個用戶只能打開一個游戲來防止重復打開。游戲多開的方法為在系統(tǒng)賬號里面多建立賬號,一個游戲使用一個賬號。
方法如下:
1、打開控制面版→用戶帳戶→創(chuàng)建一個新帳戶→輸入新帳戶名(下一步)→創(chuàng)建帳戶;
2、然后到桌面的游戲快捷圖標上右鍵到[屬性] 選[高級] 把里面[以其他用戶身份運行]這個選項勾上 開第2個程序的時候記得用你新建的用戶進就可以了,省的老去切換用戶了。
第六,互斥體。
部分游戲通過互斥對象/信號量/事件等線程同步對象來確定程序是否已經(jīng)運行。最常用的函數(shù)如:CreateMutexA。
1、首先創(chuàng)建一個互斥體,CreateMutex函數(shù),第一個參數(shù)可以設置為NULL,第二個參數(shù)必須設置為false,第三個參數(shù)表示互斥體的名稱,這個名稱最好有一些特殊標識以防止與其他應用程序沖突,比如程序名+時間。
2、使用GetLastError()函數(shù)判斷錯誤信息是否為ERROR_ALREADY_EXISTS,如果是,則表示程序已經(jīng)啟動。
游戲多開的方法有二種,一為發(fā)現(xiàn)互斥體,然后關閉互斥體即可實現(xiàn)多開。二為APIHOOK,接收到錯誤信息時,加重置命令(置錯誤碼=0)即可。QQ游戲,天龍八部==最常見的類型
第七,內(nèi)存映射文件(File Mapping)
部分游戲通過把程序?qū)嵗畔⒎诺娇邕M程的內(nèi)存映射文件中,防止游戲多開。游戲多開的方法為攔阻該函數(shù),不讓它命名內(nèi)核文件即可實現(xiàn)多開。
第八,DLL全局共享
DLL全局共享區(qū)在映射到各個進程的地址空間時僅被初始化一次,且是在第一次被windows加載時,所以利用該區(qū)數(shù)據(jù)就能對程序進行多開限制。游戲多開的方法為DLL劫持讓游戲一開始運行就加載你的DLL,再轉(zhuǎn)到原來的dll上就可以實現(xiàn)多開了。
第九,使用公共文件
程序啟動時,在一個公共目錄(比如C:\或者Temp目錄)中創(chuàng)建一個公共文件,并將此文件設置為不共享讀寫。第二個程序啟動時,也打開此文件,如果打開成功,則表示程序未啟動過,否則表示程序已經(jīng)啟動。
游戲多開的方法為:手動設置多開,比如:設定文件訪問權限,不允許此程序在公共目錄創(chuàng)建文件等。
第十,Mac地址驗證
登陸服務器時,獲取本機mac地址,發(fā)送至服務器端,服務端進行mac地址驗證,如果mac地址重復登陸,則不允許同服務器進行消息傳遞。
多開游戲的多法為:使用超級兔子等軟件修改mac地址實現(xiàn)多開,針對此情況,本人也寫了一個修改Mac地址的小工具,大家可以在網(wǎng)站下載。
第十一,查看網(wǎng)絡連接
獲取本機所有網(wǎng)絡連接,使用GetTcpTable獲取TCP連接,使用GetUdpTable獲取UDP連接,檢查是否有連接到服務器IP和端口號的連接,如果有,表示程序已經(jīng)啟動,否則程序未啟動。需要注意的是,其獲取的ip和端口號都是一個DWORD值,并且高低位相反。IP地址可以通過inet_addr函數(shù)將字符串形式的IP地址(如“127.0.0.1”)轉(zhuǎn)換為DWORD型的,端口號可以使用以下公式轉(zhuǎn)換:DWORD dwPort = ((nPort & 0xff) << 8) + ((nPort & 0xff00) >> 8);
多開游戲的方法為:掛系統(tǒng)鉤子,導致GetTcpTable函數(shù)失敗實現(xiàn)多開。
游戲防止多開的方法有時候并不是只用一個方法的,多數(shù)游戲都會用多種方法一起來防止多開的,只要大家都懂得這幾個游戲多開的原理,靈活運行,一個一個分析排查,基本上都能解決各種游戲多開了.。