最新消息:

QEMU/KVM + moonlight实现串流游戏作弊

渗透流程与思路 admin 87浏览 0评论

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半虚拟化技术。

 

*本文为看雪论坛优秀文章,由 cslime 原创,转自https://bbs.kanxue.com/user-home-844784.htm

转载请注明:jinglingshu的博客 » QEMU/KVM + moonlight实现串流游戏作弊


Warning: Use of undefined constant PRC - assumed 'PRC' (this will throw an Error in a future version of PHP) in /usr/share/nginx/html/wp-content/themes/d8/comments.php on line 17
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址