溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

發(fā)布時(shí)間:2020-04-07 12:32:53 來源:網(wǎng)絡(luò) 閱讀:2820 作者:zZore 欄目:編程語言

玩物不一定要喪志

最近因?yàn)闄C(jī)緣巧合,入了網(wǎng)易新手游軒轅劍龍舞云山的坑,非常喜歡里面的畫風(fēng),大愛~~

因?yàn)槭莻€(gè)散人玩家,也沒什么朋友一起玩,玩了幾天之后,發(fā)現(xiàn)幫派任務(wù)總是很難完成,因?yàn)樾枰蛶捅娊M隊(duì)強(qiáng)盜什么的,程序員的時(shí)間哪有和普通人能湊到一起的,于是乎,想到了個(gè)辦法,就是建小號(hào)^_^。

剛開始,一個(gè)電腦,一個(gè)手機(jī)玩著還行,但是總是占著手機(jī),也影響做事,于是乎,我嘗試著直接在電腦上登陸兩個(gè)號(hào),結(jié)果官方PC端提示不支持兩開個(gè)。

于是乎,我尋思著該不該下個(gè)安卓模擬器什么的,一般也支持多開,試了幾個(gè)平臺(tái),發(fā)現(xiàn)占資源不過,操作流暢度遠(yuǎn)不如官方的PC版(這一點(diǎn)不得不說一下網(wǎng)易良心了,給手游提供了相當(dāng)不錯(cuò)的電腦客戶端)。

最后一想,活人還能讓尿憋死,咱也是寫代碼的,不行就研究一下,看看能不能通過代碼方式解決。

常言道,心動(dòng)不如行動(dòng),于是,我開始構(gòu)思基于.Net開發(fā)一套命令行參數(shù)和環(huán)境變量模擬的多開器

原理分析

目前主流網(wǎng)游大部分的多開限制基本以啟動(dòng)器/客戶端相互協(xié)作,啟動(dòng)器先于客戶端運(yùn)行,預(yù)判斷客戶端是否已經(jīng)運(yùn)行,再?zèng)Q定是否啟動(dòng)客戶端。

這個(gè)環(huán)節(jié)中為了防止客戶端被直接啟動(dòng),啟動(dòng)器和客戶端之間都會(huì)存在一些簡單的交互協(xié)議,來讓客戶端判斷當(dāng)前啟動(dòng)行為是否來自啟動(dòng)器。

兩者的交互協(xié)議的傳輸方式一般分為以下幾種形式

  1. 命令行參數(shù)

  2. 環(huán)境變量

  3. 系統(tǒng)消息、通信管道、網(wǎng)絡(luò)套接字等復(fù)雜通信環(huán)境

多開工具切入點(diǎn)

啟動(dòng)器和客戶端的傳輸方式中,因第一種和第二種的設(shè)計(jì)開發(fā)成本較低,被廣泛采用,很多網(wǎng)游都是采用其中一種或者兩種結(jié)合的形式來控制多開。

本工具,就是介入到啟動(dòng)器和客戶端之間,client007工具負(fù)責(zé)偽裝成客戶端收集和記錄兩者的交互內(nèi)容,opener工具則負(fù)責(zé)偽裝成啟動(dòng)器向客戶端發(fā)送交互內(nèi)容,以此來達(dá)到欺騙客戶端,實(shí)現(xiàn)多開的目的。

工具源代碼

同樣困擾的游友們,可以從以下兩個(gè)渠道獲取源代碼:

  • Github https://github.com/inmount/dotnet-game-opener
  • 碼云 https://gitee.com/inmount/dotnet-game-opener

將理論應(yīng)用到實(shí)際中

第一步 下載和編譯要用到工具

代碼中包含client007和opener兩個(gè)獨(dú)立的工具,需要單獨(dú)編譯。

第二步 找到客戶端

先打開軒轅劍,使用Windows自帶的任務(wù)管理器就可以完成這個(gè)事情:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

這個(gè)時(shí)候把軒轅劍關(guān)閉,將客戶端程序改個(gè)名:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

第三步 將client007工具偽裝成客戶端

將client007工具編譯后的client007.exe和dpz3.dll兩個(gè)文件拷貝到客戶端目錄下,并將client007.exe重命名為客戶端的名稱。

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

第四步 收集資料并生成配置文件

正常運(yùn)行軒轅劍,發(fā)現(xiàn)顯示的不是登錄界面,而是我們的client007工具的界面:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

點(diǎn)擊【保存到配置文件】生成配置文件:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

第五步 使用opener模擬啟動(dòng)器開啟客戶端

將config.ini文件拷貝到opener工具的編譯輸出目錄中:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

還原客戶端文件:

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

執(zhí)行opener工具(軒轅劍有自身重復(fù)運(yùn)行驗(yàn)證,所有需要把創(chuàng)建副本勾上):

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

點(diǎn)擊【啟動(dòng)客戶端】,發(fā)現(xiàn)客戶端正常啟動(dòng)了,點(diǎn)幾下開幾個(gè),開心^_^

使用C#實(shí)現(xiàn)軒轅劍龍舞云山PC端多開

至此,大功告成。

后記

這次算是一個(gè)有趣的開發(fā)體驗(yàn),開發(fā)的小工具后來測試可以直接應(yīng)用到其他網(wǎng)游中,測試通過的還有陰陽師(不用勾副本直接可以多開,又是網(wǎng)易家的,希望網(wǎng)易不會(huì)因此盯上我~),也算是一個(gè)小驚喜,大家發(fā)現(xiàn)哪個(gè)可以用的,也可以告訴我,讓我多一些成就感^_^

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI