对FPS游戏作弊工具的一些理解

YuDou dreaming...

​ 这两天看到了个几张图片,据说是超越了DMA的作弊工具,看完后心血来潮想研究一下现在的一些游戏外挂的原理。

  • 首先是普通外挂软件。游戏数据大部分都存在本地内存中,比如敌人位置、血量、技能等。正常情况下你肯定看不到,但外挂软件直接访问本地内存,并将这些数据可视化。比如一些透视挂,就可以通过从本地内存中读取的数据来显示敌人所在位置等信息。游戏通常会拒绝这些外挂软件访问游戏数据,稍微好一点的外挂软件就会伪装成各种正规的软件来访问,但这种普通的内存挂基本都会封,只是时间问题而已
  • 而DMA可以优化这一点。DMA全称为Direct Memory Access,即直接存储器访问。DMA能够做到在数据传输期间越过CPU来访问内存,那么就可以通过DMA把本地电脑的内存复制一份到另一台电脑上,然后在另一台电脑上运行外挂软件来实现外挂功能(如透视),而外挂软件完全不访问运行在本地的游戏数据,所以很难封禁。但是由于现代操作系统(如 Windows、Linux 等)都有复杂的内存管理机制。操作系统会对内存进行虚拟化,将物理内存映射到不同的虚拟地址空间。对于 DMA 访问内存,DMA需要CPU去解析内存再传输给DMA,它不能直接使用物理内存地址,因为操作系统可能已经对这些物理地址进行了重新映射。如果直接使用物理地址访问内存,可能会访问到错误的区域,因为它不知道操作系统的内存映射规则。因此DMA虽然可以避开CPU,但绕不过操作系统,存在被操作系统检测到的可能
  • 于是现在又有了HMTT来进一步优化。HMTT全称为Hybrid Memory Trace Tool,即混合内存跟踪工具。HMTT通过插在DDR4接口的内存上,使用DIMM-snooping机制监听内存总线,绕开了CPU。HMTT在读取内存时系统内部没有任何痕迹,可以理解为内存中间人,可以在数据从一个地方传输到另一个地方的过程中介入并获取数据。因此HMTT也可以在将内存数据发送给主板前复制一份给另一台电脑,且无法被操作系统检测到。HMTT是纯物理层面的解决方案,不经过操作系统,因此不存在操作系统层面的检测可能╮(╯▽╰)╭

将来问世的各种硬件各种技术难免会被用在研发外挂上,这是不可避免的。在我看来,其实DMA就已经很难查封了,没必要因为新的外挂技术而沮丧,反正反作弊都查不出来🤣🤣🤣

这三张图是我在冲浪时看到的,值得一提的是:第一张图提到的DMA和HMTT的区别是有误的,DMA不需要通过CPU来访问内存,第二张图“DMA获取内存的方式”也是错的,不知道是不是为了销售故意这样做的😏

  • Title: 对FPS游戏作弊工具的一些理解
  • Author: YuDou
  • Created at : 2024-11-25 23:32:59
  • Updated at : 2024-12-23 14:44:26
  • Link: https://sweetyudou.github.io/2024/11/25/DMA/
  • License: All Rights Reserved © YuDou
On this page
对FPS游戏作弊工具的一些理解