Garena的防作弊機制 (anti-cheat mechanism)

只是機制研究說明,不會告訴你如何破解

傳統的方式
runing process scan (檢查你是不是開著作弊程式)

prcoess memory check (檢查記憶體中遊戲有沒有被動過手腳)

細節大概有人寫吧,不詳提


還原競時通和遊戲的檔案,確保你不是執行修改過的檔案 (順便擋LOL改skin?)



8/25 Garena LOL 7.17更新後,我發現OBS game capture不能使用了 (Riot版本還是能用)

做了一些研究
 
我注意到 kernel mode driver

C:\Windows\System32\drivers\gaprotect.sys

這個東西無法停掉,停掉砍掉一開LOL也會回去

防毒程式好像也不能把他加進黑名單... 開檔案(按瀏覽那個,叫啥名字我忘了)找不到gaprotect.sys

就算你真的擋掉,我猜Garena也會炸給你看,不給你玩


觀察到有以下行為 (可能不是全部)

1) 隱藏process information
看不到process的argument (無法記錄後令外起動避開anti-cheat?)
可能是改system structure或是用hook system api達成 (沒研究)

2) hook system api
Garena的做法是api return都是成功,但實際上沒幫你做事
所以依靠return value來抓哪邊被擋無效
一般人大概會被騙,以為是自己哪裡做錯了


程式權限層級和行為
簡單說就是一個類似防毒軟體的東西,但只防護他想防的東西


Garena的GTV長得和OBS好像阿
OBS get-graphics-offsets32.exe, inject-helper32.exe, graphics-hook32.dll
GTV  get-graphics-offsets.exe. inject-helper.exe, graphics-hook.dll
不只檔名長的和OBS很像,連用法都一樣,真是非常有趣
自訂錯誤return value也一樣 (system error code本來就會一樣了)

OBS的用法是這樣: inject-helper32.exe dll mode pid/tid
mode 1=inject to thread, 0 inject to process
ex: inject-helper32.exe graphics-hook32.dll 1 lol_thread_id
同樣參數給GTV也通用喔


個人覺得Garena工程師非常有可能是在參考OBS後寫的
OBS的license是 GNU GPL v2
至於有沒有抄襲/盜用,我就不知道了,認定方式也沒研究
有興趣的人可以去找比較程式執行檔的工具,看相似性

如果任何一個檔改檔名會inject失敗 (copy OBS檔案覆蓋也一樣)
猜測應該是有建立whitelist,以某種條件過濾檔案
可能是filename, checksum?

OBS get-graphics-offsets32.exe
output to  %appdata%\Roaming\obs-studio\plugin_config\win-capture\32.ini
內容
[d3d8]
present=0x662e0
[d3d9]
present=0x4a064
present_ex=0xbdfc4
present_swap=0x781f
d3d9_clsoff=0x29e8
is_d3d9ex_clsoff=0x4b80
[dxgi]
present=0x21bd1
present1=0x21d0d
resize=0x255ed


GTV  get-graphics-offsets.exe
output to stdout
[d3d9]
present=0x4a064
present_ex=0xbdfc4
present_swap=0x781f
d3d9_clsoff=0x29e8
is_d3d9ex_clsoff=0x4b80
[dxgi]
present=0x21bd1
resize=0x255ed
[dinput]
getdevicedata=0x6ba7
getdevicestate=0x69dd


沒有d3d8大概是用不到, dxgi沒有present1是因為OBS後來才加的
dinput大概是聊聊之類的要用熱鍵吧

結論就是
除非Garena的防護有漏洞,或是有可攻擊的地方
只能去RE,直接不讓防護機制啟動
我只是想用OBS而已,沒興趣這麼花功夫....

留言

這個網誌中的熱門文章

OBS 抓不到畫面, 視窗, 遊戲擷取, 黑或白畫面, 當掉 ,卡住, black/white screen, window game capture, crash, freeze

優化實況(一) OBS設定 streaming settings

OBS plugin obs-text 顯示播放中音樂, display playing music