Mqmii/assault-cube-internal
GitHub: Mqmii/assault-cube-internal
针对 Assault Cube 游戏的 C++ 内部作弊器,包含自瞄和自动开枪两个核心模块,展示了内存操作与游戏函数复用的技术实现。
Stars: 0 | Forks: 0
# AssaultCube 内部作弊器
基于两个游戏玩法模块构建的精简 C++ 内部 DLL 项目:自瞄(aimbot)和自动开枪(triggerbot)。
### 自瞄(Aimbot)
自瞄模块直接从内存读取本地玩家状态,遍历实体列表,过滤无效或友方目标,并基于世界空间位置计算 yaw/pitch。
关键部分是可见性验证。它并非简单地对 FOV 范围内的候选目标进行瞄准,而是通过内联汇编调用游戏内部的 `raycubelos` 例程。该函数用于针对两个目标点进行视线检测:
- 头部(head)
- 胸部(chest)
这减少了对部分被遮挡目标的误判,并避免了瞄准隐藏在几何体后的敌人。该函数使用游戏预期的底层调用约定:`ECX` 和 `EDX` 携带向量指针,LOS 边界值通过 `XMM2` 传递。
### 自动开枪(TriggerBot)
自动开枪模块采用了不同的方法。它不通过原始实体迭代手动重建目标选择逻辑,而是复用游戏自带的准星选择辅助函数。
`GameAddresses::resolve()` 通过模式扫描模块镜像,在运行时查找 `findCrosshairTarget`。`TriggerBot` 随后通过一个小的内联汇编适配器调用该函数,该适配器映射了原始调用约定:
- `ECX` 和 `EDX` 接收射线起点和射线终点向量
- 其余参数按预期顺序压入栈中
这是自动开枪模块设计的关键。它不猜测准星指向何处,而是将该判断委托给游戏使用的同一内部辅助函数,仅在事后进行轻量级验证:
- 忽略空或无效实体
- 忽略自身
- 忽略已死亡目标
- 忽略队友
如果解析出的目标通过这些检查,模块将写入武器的准备射击标志位。
## 构建
本项目使用 CMake,目标标准为 C++20,并应使用 MSVC 工具链构建为 `x86` 架构。`x64` 构建不适用于当前的内联汇编和调用约定假设。
```
cmake -S . -B build -A Win32
cmake --build build
```
标签:Aimbot, Assault Cube, Bash脚本, C++, C++20, CMake, DLL注入, FPS游戏, Inline Assembly, MSVC, TriggerBot, x86, 云资产清单, 内存修改, 内存读取, 内联汇编, 内部作弊, 安全意识培训, 射击游戏, 扳机, 数据擦除, 流量审计, 游戏作弊, 游戏外挂, 游戏安全, 游戏逆向, 特征码扫描, 自瞄, 逆向工程