GitHub:https://github.com/cs1ime/blacksun-framework
有些代碼是好久之前寫的C代碼縫合起來的,內存搜索,GameParser這種,因為實在不想重寫一遍,看不懂就gdb調起來逆向唄。
還有些代碼是初學c++的時候寫的,繪制這塊,render模塊其實可以用weak_ptr拿共享內存的,有空安排一個C SDK出來。
本文中涉及到的源碼和技術僅限交流學習,不得用于非法用途。
已經做到
◆繪制和讀寫都在虛擬機外部實現,繞過一切反作弊外掛檢測(云游戲廠商都用的KVM虛擬機)。
◆修改moonlight源碼實現imgui繪制,兼容vaapi(opengl),vdpau(sdlrender)。
◆利用NAT網絡通信以做到超低延遲的moonlight串流畫面。
◆通過對moonlight發送SDL_Event實現鍵鼠模擬。
◆模擬100hz回報率的鼠標進行自瞄以做到絲滑的自瞄效果。
◆屏蔽鼠標側鍵(觸發自瞄的按鍵)輸入虛擬機以做到更隱蔽的自瞄。
接下來可能會實現的功能:
1.UE引擎外部光線追蹤: kvm外部讀寫速度非常快,而且作弊有一個Linux作為運行環境,拿到周圍所有的可碰撞物體的空間信息,跑一個光追算法就可以了。
2.Ept斷點: 利用vt的MTF,一核一個eptp,eptp的讀寫執行屬性每個都能單獨存在的特性,處理好cow(也可以不處理)就能輕松的做到斷點,這東西特別無腦,CPU自帶的硬斷還要處理單步+線程調度的問題,這東西完全不用處理這些。
3.Invoke: 可以利用Ept斷點做hook,用輪詢+讀寫鎖的方式與用戶層做通訊,用戶層用一個coroutine做hook的callback,callback里用yield來做invoke,觀察棧內存斷點來判斷返回并判斷超時,返回之后resume coroutine.實現Invoke之后基本和注入沒啥區別了。
KVM的正常用戶和反作弊可能采取的動作:
1.云游戲服務提供商: 反作弊可能和他們合作,把他們的KVM環境標記為合法的,不過這個影響不大的,沒人會頂著這么大延遲玩fps射擊類游戲。
2.家庭串流游戲用戶: 這類用戶可能會使用KVM,但是國內無wifi6e,體驗會跟不上,會比較少。
3.用linux玩Windows游戲的用戶: 這也是一個很好的用linux玩Windows游戲的方法,looking glass也用的串流傳畫面。
反作弊可能會采取的對抗方案:
1.控制機上裝反作弊: 這樣子是無意義的,因為控制機可能是基于GPL的系統,GPL上玩不了Windows那套的。
2.不支持KVM: 這能徹底解決這個問題,但是實機Windows做串流游戲機不太好,有的時候容易BSOD,用遠程控制插座和局域網開機來解決這個問題,但是這樣子做對硬件很不好,最好的家庭串流游戲方案還是KVM管理客戶機。
3.標記KVM用戶: KVM用戶玩的太強了就BAN了。
4.開發一個Host OS放到市場上: 如果想在Host OS上運行檢測的話需要繞過GPL,要獨立開發一個VMM。如果想徹底解決作弊問題得BIOS主板都用自己的一套。目前最有可能做到的公司就是Microsoft,自家有xbox產品線,hyper-v,gpu半虛擬化技術。
安全圈
系統安全運維
看雪學苑
安全內參
全球網絡安全資訊
關鍵基礎設施安全應急響應中心
安全圈
安全牛
RacentYY
安全牛
公安三所網絡安全法律研究中心
Coremail郵件安全