DMA
2024年12月23日大约 3 分钟
DMA
DeeLMind 提示
原本设计为红队攻防,但如今确是游戏外挂的天下
什么是 DMA
DMA 代表直接内存访问(Direct Memory Access)。它是一种计算机系统中的技术,允许外部设备(如网络适配器、硬盘控制器、图形卡等)直接访问系统内存,而无需经过中央处理器(CPU)的介入。 通常情况下,当外部设备需要读取或写入系统内存中的数据时,需要 CPU 介入来执行这些操作。但是,在高性能和高效率的应用中,这种方式可能会导致 CPU 资源的浪费和系统性能的下降。 DMA 技术通过允许外部设备直接与系统内存进行数据传输,可以显著提高系统性能和效率。在 DMA 操作中,外部设备和系统内存之间的数据传输是在 CPU 控制之外完成的,这意味着 CPU 可以同时执行其他任务,从而减少了 CPU 的负载并提高了系统的整体性能。 总的来说,DMA 技术可以有效地提高计算机系统的数据传输速度和性能,尤其在需要大量数据传输的场景下,如视频处理、网络数据传输等。
DMA 直接访问系统内存的一般过程:
- 请求 DMA 操作:外部设备(例如硬盘、网卡、显卡)需要执行 DMA 操作时,首先会发送 DMA 请求信号给 DMA 控制器。
- DMA 授权:DMA 控制器接收到外部设备的 DMA 请求后,根据系统的 DMA 授权机制,决定是否授权该 DMA 操作。如果授权,则 DMA 控制器会为外部设备分配 DMA 通道,并允许其进行 DMA 操作。
- 内存地址传输:外部设备获得 DMA 授权后,需要向 DMA 控制器提供要访问的系统内存地址。这通常是通过在系统总线上发送地址信息来完成的。
- 数据传输:一旦外部设备提供了要访问的内存地址,DMA 控制器会使用系统总线直接将数据从外部设备传输到系统内存,或者从系统内存传输到外部设备,而无需 CPU 的介入。这种直接数据传输可以大大提高数据传输的效率,减少了 CPU 的负载。
- DMA 完成:一旦 DMA 操作完成,外部设备会向 DMA 控制器发送 DMA 完成信号,以通知 DMA 操作已经结束。DMA 控制器收到完成信号后,可以执行相应的操作,例如通知 CPU 或者外部设备,或者执行后续的 DMA 操作。
什么是 PCIE
PCIE 是指 Peripheral Component Interconnect Express,即外围组件互连表达,它是一种计算机总线标准,用于连接各种外部设备到计算机主板。
DMA 外挂
利用 ASIC 是专用集成电路(Application-Specific Integrated Circuit),但是当今没有现成的 ASIC,说不定以后有人开发专业 PCB。现在利用 FPGA 制作开发组件插入到计算机 PCIE 插槽,读取一台计算机游戏内存展示到另外一台计算机上,通常可以做 FPS 游戏地图透视等等。

思 维 教程: