代理游戲反外掛思路課件_第1頁(yè)
代理游戲反外掛思路課件_第2頁(yè)
代理游戲反外掛思路課件_第3頁(yè)
代理游戲反外掛思路課件_第4頁(yè)
代理游戲反外掛思路課件_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、代理游戲反外掛思路演講者:nbw 簡(jiǎn) 介 代理游戲反外掛簡(jiǎn)介常見外掛和反外掛策略網(wǎng)游交互流程簡(jiǎn)介游戲分析的技巧代理游戲保護(hù)技術(shù)代理游戲舉例代理游戲反外掛簡(jiǎn)介代理游戲優(yōu)點(diǎn)游戲成熟,有專門的開發(fā)公司與成熟的外服運(yùn)作經(jīng)驗(yàn);bug少。很多被代理的游戲在外服已經(jīng)運(yùn)作,漏洞已明顯減少;推廣容易。很多代理游戲已被玩家群體所了解認(rèn)可代理游戲缺點(diǎn)無(wú)源代碼,修改周期長(zhǎng)、可控性差;反外掛不容易,很多代理游戲反外掛系統(tǒng)在外服運(yùn)作已經(jīng)被外掛群體占領(lǐng);bug修復(fù)困難。沒有代碼情況下,很難定位、修復(fù)bug??刹捎梅赐鈷觳呗?、加強(qiáng)游戲本身完整性檢測(cè),減少游戲內(nèi)部被利用;1、加強(qiáng)服務(wù)端策略性檢測(cè);3、對(duì)游戲關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù);

2、4、對(duì)游戲關(guān)鍵函數(shù)進(jìn)行混淆。結(jié)合本次議題,主要分享如何在無(wú)源代碼情況下(即代理游戲),通過對(duì)游戲進(jìn)行分析,實(shí)現(xiàn)2、3、4種方案。網(wǎng)游交互流程簡(jiǎn)介怪物信息人物信息NPC信息物品信息其 他攻擊怪物其 他物品相關(guān)NPC交互人物交互玩家外掛1服務(wù)器外掛21.客戶端與服務(wù)器交互流程S1S5S4S3S2Fun1網(wǎng)游交互流程簡(jiǎn)介狀態(tài)機(jī)不停運(yùn)行,檢測(cè)各個(gè)標(biāo)記位,發(fā)現(xiàn)標(biāo)記位變化,則進(jìn)入相應(yīng)處理。Fun2重點(diǎn)是對(duì)狀態(tài)標(biāo)識(shí)位的分析與參數(shù)的分析3.狀態(tài)機(jī)原理簡(jiǎn)介網(wǎng)游交互流程簡(jiǎn)介游戲本身沒有專門的數(shù)據(jù)處理線程,而是對(duì)客戶端的鼠標(biāo)鍵盤IO操作進(jìn)行響應(yīng),如檢測(cè)到鼠標(biāo)點(diǎn)擊,則判斷是否在地圖上,如果是走路行為,則轉(zhuǎn)入走路函數(shù)。

3、這種形式的數(shù)據(jù)處理一般從客戶端發(fā)送函數(shù)分析上層調(diào)用就可以簡(jiǎn)單找到相關(guān)功能函數(shù)。 4.功能函數(shù)調(diào)用簡(jiǎn)介網(wǎng)游交互流程簡(jiǎn)介/走路函數(shù)Void Walk(DWORD x, DWORD y) SetState(_GOWALK); /設(shè)置自動(dòng)機(jī)狀態(tài)位 TargetPoint(x, y); /設(shè)置走路坐標(biāo)參數(shù)既有狀態(tài)位修改,也有功能函數(shù)調(diào)用。實(shí)質(zhì)上是對(duì)狀態(tài)位的封裝。避免直接引用狀態(tài)位,引發(fā)不可測(cè)錯(cuò)誤。重在找出設(shè)計(jì)人員的原始調(diào)用接口,而不是斷章取義拼湊函數(shù)內(nèi)部代碼。5. 狀態(tài)機(jī)結(jié)合功能函數(shù)調(diào)用游戲分析技巧1. 游戲的數(shù)據(jù)結(jié)構(gòu)外掛有自己的算法,游戲內(nèi)的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)才是操作目標(biāo)。通常關(guān)鍵數(shù)據(jù): Player屬性

4、結(jié)構(gòu)、怪物鏈表、物品鏈表、地圖信息表、其他相關(guān)鏈表。常用的數(shù)據(jù)結(jié)構(gòu):數(shù)組、鏈表、二叉樹。數(shù)組可能有一維數(shù)組、二維數(shù)組;鏈表可能有動(dòng)態(tài)鏈表、循環(huán)鏈表等;二叉樹一般是平衡二叉樹,方便進(jìn)行有序查找。游戲數(shù)據(jù)結(jié)構(gòu)和內(nèi)存位置泄露非常危險(xiǎn)!游戲分析技巧(1)1、尋找程序員留下的調(diào)用接口 外掛會(huì)嘗試調(diào)用程序員設(shè)計(jì)的函數(shù)接口實(shí)現(xiàn)外掛功能,即簡(jiǎn)單又穩(wěn)定。反外掛人員也應(yīng)該從此處入手;2、檢查調(diào)用處次數(shù)利用反匯編器,查找對(duì)發(fā)送函數(shù)的調(diào)用次數(shù),根據(jù)調(diào)用次數(shù)判斷。如給服務(wù)器發(fā)送數(shù)據(jù)的函數(shù),被引用次數(shù)一般非常多。3、利用不同功能尋找調(diào)用接口 如不好判斷走路函數(shù)接口,則可以進(jìn)行不同方式的走路,如每種方式都會(huì)調(diào)用某函數(shù),則極

5、可能是程序員預(yù)留的接口;4、利用不同狀態(tài)尋找關(guān)鍵函數(shù) 如不好尋找地圖障礙點(diǎn)判斷函數(shù),則可以試圖走向可達(dá)位置和不可達(dá)位置兩種情況,對(duì)兩次代碼流程比較,二者流程分離的位置就是障礙點(diǎn)判斷位置。游戲分析技巧(2)7、數(shù)據(jù)結(jié)構(gòu)的查找 如: 每種數(shù)據(jù)結(jié)構(gòu)都可能會(huì)有很多地方引用。如怪物鏈表,怪物信息修改、刪除、打怪、選怪等很多地方都會(huì)引發(fā)對(duì)怪物鏈表的操作,很難通過對(duì)某處代碼施行保護(hù)防止別人分析出怪物鏈表。游戲分析技巧(4)游戲怪物鏈表分析(1)怪物鏈表枚舉一:按tab鍵選怪mov esi, dword ptr esp+18mov eax, dword ptr esi+44mov ebp, dword ptr

6、 eax /獲取鏈表指針add esi, 40mov dword ptr esp+10, 0/cmp esi, esi|mov edi, dword ptr esi+4|je short 00431F8E /判斷是否到了鏈表尾/中間進(jìn)行處理|call 006E34CE|mov ebp, dword ptr ebp /處理下一個(gè)節(jié)點(diǎn)jmp 00431F82游戲怪物鏈表分析(3)1、以上2處鏈表都可以泄露怪物信息,都很危險(xiǎn),值得保護(hù);2、仍然有其他地方鏈表存在,比如對(duì)怪物新增、刪除、修改時(shí)候,都會(huì)枚舉怪物鏈表;3、要么對(duì)每處鏈表處理都分析保護(hù),要么處理其他線索。游戲走路線索分析(1)1、游戲里輸入

7、坐標(biāo)進(jìn)行走路:push edi /目的坐標(biāo)ypush ebx /目的坐標(biāo)xcall 00421250 /走到目的004221E1 call 00421250004C68AB call 004212500057D408 call 004212500057E88C call 00421250005840A7 call 0042125000584105 call 004212500062A0E7 call 0042125000652681 call 00421250006622D2 call 004212500066B372 call 0042125000671A5A call 0042125000

8、68AB27 call 00421250調(diào)用這個(gè)函數(shù)的地方:游戲走路線索分析(2)點(diǎn)擊鼠標(biāo)進(jìn)行走路: push 2 push eax push ecxpush esicall 0051D2B0 /進(jìn)行移動(dòng)0051D14C call 0051D2B00051D176 call 0051D2B00051D192 call 0051D2B00051D1AE call 0051D2B00051D1CA call 0051D2B00051D1E6 call 0051D2B00051D203 call 0051D2B00051D245 call 0051D2B00051D262 call 0051D2B0

9、調(diào)用該函數(shù)的地方:游戲走路線索分析(3)1、對(duì)各種形式的走路加以分析,找出函數(shù)及調(diào)用點(diǎn);2、對(duì)走路函數(shù)本身及調(diào)用處進(jìn)行歸納;3、調(diào)查以上位置是否數(shù)量眾多,值得保護(hù);4、如果數(shù)量不多,且便于保護(hù),則進(jìn)行保護(hù),否則選擇下一個(gè)保護(hù)線索。代理游戲保護(hù)技術(shù)(1)一、游戲保護(hù)方向1、文件完整性保護(hù);2、運(yùn)行時(shí)關(guān)鍵數(shù)據(jù)保護(hù);3、關(guān)鍵代碼保護(hù)。觀看一種修改游戲數(shù)據(jù)的演示二、代碼保護(hù)策略1、內(nèi)存保護(hù) 可以不定期對(duì)內(nèi)存進(jìn)行CRC校驗(yàn),供服務(wù)器驗(yàn)證。 也可以防止對(duì)代碼段進(jìn)行寫操作,如防止修改代碼段屬性等;2、對(duì)關(guān)鍵代碼進(jìn)行保護(hù) 無(wú)源代碼情況下需要針對(duì)性查找關(guān)鍵代碼,然后對(duì)其特殊保護(hù),如添加vm或監(jiān)控。 但不能盲目混

10、淆,否則達(dá)不到效果,且增加客戶端資源消耗。代理游戲保護(hù)技術(shù)(2)四、針對(duì)性代碼保護(hù)(關(guān)鍵函數(shù)保護(hù))如以下游戲代碼,模擬攻擊怪物過程:void AttackMonster(int MonsterID) Fun1(); /判斷怪物ID是否有效; Fun2(); /判斷是否在攻擊范圍; Fun3(); /發(fā)送攻擊 外掛會(huì)調(diào)用AttackMonster函數(shù),而不是僅調(diào)用 Fun3 或組合調(diào)用Fun1、2、3,因?yàn)?AttackMonster 調(diào)用方便,且穩(wěn)定。 這時(shí)候反外掛應(yīng)該保護(hù)AttackMonster,而不是Fun3(除非有多余擔(dān)心)代理游戲保護(hù)技術(shù)(4)保護(hù)簡(jiǎn)便、針對(duì)性強(qiáng)、對(duì)客戶端影響小四、針對(duì)性代碼保護(hù)(主線保護(hù)) 掌握外掛所必須的功能,對(duì)該功能全程處理,可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論