回覆列表
  • 1 # 使用者1614626438770

    下面為大家總結一下游戲多開的原理與方法

    第一,程序隱藏

    部分遊戲透過探測遊戲客戶端程序是否已經存在來防止重複開啟,如遊戲:英雄美人

    遊戲多開的辦法為啟動一個遊戲客戶端後,將該遊戲的程序隱藏,只保留一個或多個。

    第二,視窗標題修改(使用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函式失敗實現多開。

  • 中秋節和大豐收的關聯?
  • 如果高中數學成績不好怎麼辦?