FPGA开发手册扫盲
default
一.什么是 DMA
DMA(Direct Memory Access,直接内存访问)是一种由专用硬件控制器执行的数据传输机制,用于在内存与外设之间或内存与内存之间直接搬运数据,无需 CPU 干预或参与数据拷贝。在 DMA 传输过程中,CPU仅负责发起请求,数据搬运过程完全由 DMA 控制器完成,从而大幅降低 CPU 负载、提升系统性能。
二.为什么在使用 DMA
在现代网络游戏中,通常部署有应用层与内核层的联合保护机制,通过监控内存读写、代码注入、系统调用等手段防止科技行为。这些反作弊系统(如EAC、BattlEye、XignCode)大多运行在内核态,具备对传统驱动层科技的强大检测能力。
而 DMA 技术通过外部物理总线(如PCle)直接访问内存物理地址,可完全绕过操作系统与内核驱动层的安全机制,具备以下优势:
绕过内核监控机制:不触发 PatchGuard、驱动签名验证或内核回调监控无需本地驱动加载:DMA设备作为外部硬件存在,目标主机无须加载任何可疑驱动系统级隐蔽性极高:反作弊驱动难以探测或限制真实物理层的DMA 访问
实现零注入科技:无需注入目标进程,无线程创建,无内存修改痕迹
三.DMA 三件套的作用
3.1.DMA 板(PCle DMA 插件板)
通过 PCle 总线接入目标主机,直接访问其物理内存空间。实现对目标系统的内存读取(用于透视、状态监控)发内存写入(修改数值等)。旁路 CPU/内核,直接在物理层读写内存
典型工具:PCILeech
使用 FPGA、雷电转PCle、定制硬件实理
3.2.KMBOX(键鼠控制器)
物理方式控制目标主机的 鼠椅与键盘输入
实现科技逻辑驱动下的物理动作,如:
自动开枪
自动识别
快捷键连发
接入目标主机 USB 接口,模拟 HID 设备(人机交互设备)外部科技系统通过 KMBOX 向目标主机“注入”操作不涉及驱动注入、不使用 AP!调用,完全物理层模拟输入即使系统监控键鼠行为,也难以识别其为科技行为
3.3.融合器(视频融合设备)
捕获目标主机的 视频输出信号(如 HDII),并传至科技主控实现“科技主机”对“游戏主机”的图像实时分析与渲染辅助在科技主机端运行图像识别、辅助瞄准、AI标记等功能实现外显绘制(Overay)而不影响目标主机进程、显卡驱动等敏感模块HDMI 分屏器 + 采集卡
硬件 KVM 切换器
自定义图像处理接口(如 FPGA 视频流分析)
四.DMA 三件套的工作逻辑

五.DMA 硬件的本质
5.1 FPGA 的概念
FPGA 是一种“可以自己设计硬件电路的芯片”。它不像传统的 CPU(中央处理器)那样是靠执行一条条软件指令来工作,而是通过编写代码(通常是 Verilog 或 VHDL)来定义它的电路结构,就像你亲手搭建一个微型的硬件系统。
它的定位介于“软件”和“硬件”之间,既有软件的灵活性,也具备硬件的高效性,非常适合用来构建高速、专用的逻辑模块,比如图像处理、信号加速、AI推理等。
CPU: 是一种靠“执行软件指令”工作的通用处理器,用什么功能就写什么程序。
FPGA: 是一种“可自己搭建内部硬件结构”的芯片,功能由你亲手定义。
简单说:
CPU = 软件驱动的处理器 FPGA = 硬件结构也能编程的芯片
FPGA 的核心特性:
1.可编程性强
用户可使用 HDL语言(如 Verilog、VHDL)编写电路逻辑,然后将逻辑“烧录”进 FPGA芯片中。
2.并行计算能力强
内部逻辑单元之间可以完全并行处理,适合高吞吐场景(如图像处理、加解密、协议分析、DMA等)。
3.确定性强,低延迟
与CPU相比,FPGA的时序严格受控,适合要求精确周期控制的实时系统可实现定剂化接口和协议
支持用户构建 PCle、SP1、12C、AX1、Ethernet 等各种外设控制器
4.为什么 DMA 科技使用 FPGA
自定义 PCle 协议栈,模拟合法外设;
实现 DMA 读写控制器,旁路系统访问物理内存;
无驱动运行,主机感知不到;
硬件级别的总线操控,远高于款件 Hook 的权限等级:
易于加密/混淆逻辑,反检测能力强。
5.2 PCle与 DMA
PCle 是现代主板与外设(如显卡、网卡、SSD、FPGA等)之间最常用的高速串行通信总线标准,具备以下特点:
点对点高速通信,带宽支持从x1到x16(如 Gen3 x8 m 8GB/5)
分层结构:
Transaction Layer:发起读写请求
Data Link Layer:数据可靠传输
Physical Layer:信号编码和链路传输
主从模型:
主机(RootComplex)控制外设(Endpoint)
DMA 是一种数据搬运方式,而PCle是数据传输的通道,两者不是竞争关系
而是 组合使用:
PCle 提供通路,DMA负责发起数据传输请求
组合逻辑:
DMA Controller(在 FPGA 内实现)通过 PCle 接口作为 Endpoint 设备注册通过 PCle 发起 MemoryRead/MemoryWrite TLP(事务层包)操作主机内存,实现物理地址级的读写
5.3 DMA 常用芯片选型
DMA 被卡一般会选择使用 A7 系列芯片。包含35T/75T/100T 等版本以XC7A100T 为例:
Xilinx Artix-7 系列(简称 A7)是一个性价比很高、面向中等复杂度设计的 FPGA 系列,适用于各种嵌入式加速任务,比如高速数据采集、图像处理、通信等。