s7shvets7s/simple_ac_internal_cheat

GitHub: s7shvets7s/simple_ac_internal_cheat

一个基于 C++20 的 AssaultCube 内部修改教育项目,用于学习 Windows 逆向工程、运行时内存操作、函数 hook 和 DirectX 渲染集成等底层开发概念。

Stars: 0 | Forks: 0

# 🎯 简易 AssaultCube 内部作弊 ### 用于学习逆向工程、运行时内存和 Windows 内部原理的 C++ 教育项目 [![C++](https://img.shields.io/badge/C++-20-00599C?style=flat-square\&logo=c%2B%2B\&logoColor=white)](https://isocpp.org/) [![Platform](https://img.shields.io/badge/Platform-Windows-0078D6?style=flat-square\&logo=windows\&logoColor=white)](https://www.microsoft.com/windows) [![Architecture](https://img.shields.io/badge/Architecture-x86-informational?style=flat-square)](#technical-stack) [![IDE](https://img.shields.io/badge/IDE-Visual%20Studio%202022-5C2D91?style=flat-square\&logo=visual-studio\&logoColor=white)](https://visualstudio.microsoft.com/) [![API](https://img.shields.io/badge/API-WinAPI-lightgrey?style=flat-square)](https://learn.microsoft.com/windows/win32/) [![ImGui](https://img.shields.io/badge/UI-Dear%20ImGui-white?style=flat-square\&logo=target)](https://github.com/ocornut/imgui) [![Detours](https://img.shields.io/badge/Hooking-Detours-orange?style=flat-square)](https://github.com/microsoft/Detours) [![Purpose](https://img.shields.io/badge/Purpose-Educational-success?style=flat-square)](#disclaimer) [![License](https://img.shields.io/badge/License-Unlicense-blue?style=flat-square)](LICENSE.txt)
## 关于本项目 **简易 AssaultCube 内部作弊** 是一款针对开源游戏 **AssaultCube** 的教育性内部修改程序。 该项目旨在受控环境中探索底层 C++ 开发和基础逆向工程概念。它演示了与运行中进程的交互、运行时内存结构、多级指针、函数 hook、DirectX 渲染集成,以及进程内图形界面的开发。 该应用程序以 **x86 动态链接库** 的形式实现,并被加载到本地的 AssaultCube 进程中。一旦加载,它会提供一个使用 **Dear ImGui** 构建的交互式覆盖层。 ## 🎥 演示
AssaultCube internal project demonstration AssaultCube ImGui overlay demonstration
## ✨ 功能 ### Aimbot * 可配置的目标选择 * 可调整的瞄准行为 * 通过覆盖层在运行时激活和停用 * 与存储在游戏内存中的玩家和实体数据进行交互 ### ESP * 显示有关游戏实体的信息 * 演示 world-to-screen 坐标转换 * 使用游戏实体列表和渲染数据 * 与内部覆盖层集成 ### 玩家参数 该项目提供了用于修改本地存储玩家值的实验性控制功能,包括: * 生命值 * 护甲 * 弹药 * 视野 (FOV) * 其他运行时参数 ### ImGui 覆盖层 * 交互式进程内菜单 * 功能切换和配置控制 * 选项卡式界面 * 运行时设置管理 * 菜单可见性通过 `Delete` 键控制 ## 🧠 学习目标 创建该项目主要是为了获得以下方面的实践经验: * C++20 系统编程 * Windows 进程和模块内部原理 * 动态链接库生命周期管理 * 运行时内存检查 * 指针链和内存偏移 * 函数 hook * Microsoft Detours * DirectX 渲染 hook * World-to-screen 转换 * Dear ImGui 集成 * 实体列表遍历 * 功能、配置和渲染代码的分离 * 调试已注入的 x86 模块 该仓库并不是一个可用于生产环境的工具,而是记录了在底层 Windows 开发和游戏逆向工程方面的一次早期实践。 ## 🛠️ 技术栈 | 技术 | 用途 | | ---------------------- | ----------------------------------- | | **C++20** | 主要编程语言 | | **Windows API** | 进程、模块、线程和 DLL 交互 | | **x86** | AssaultCube 使用的目标架构 | | **Dear ImGui** | 内部图形覆盖层 | | **Microsoft Detours** | 运行时函数 hook | | **DirectX** | 覆盖层渲染集成 | | **Visual Studio 2022** | 开发和构建环境 | | **vcpkg** | 依赖管理 | ## ⚙️ 高级架构 该项目分为几个独立的部分: ``` src/ ├── features/ │ ├── aimbot.cpp # Aimbot behaviour and target processing │ ├── aimbot.h │ ├── esp.cpp # Entity visualization │ ├── esp.h │ ├── changestats.cpp # Runtime player-parameter controls │ └── changestats.h │ ├── menu/ │ ├── menu.cpp # ImGui initialization and rendering │ ├── menu.h │ ├── menutabs.cpp # Overlay tabs and controls │ ├── menutabs.h │ ├── settings.cpp # Runtime feature configuration │ └── settings.h │ ├── offsets/ │ ├── constants.cpp # Addresses and offset definitions │ ├── constants.h │ ├── genCode.cpp # Supporting offset-related logic │ └── genCode.h │ ├── utils/ # Shared utility code └── dllmain.cpp # DLL entry point and initialization ``` 这种分离使得功能逻辑、菜单渲染、设置以及依赖于版本的内存偏移量彼此隔离。 ## 🔬 工作原理 在宏观层面上,该项目遵循以下生命周期: 1. DLL 被加载到本地运行的 AssaultCube 进程中。 2. `DllMain` 启动项目初始化例程。 3. 解析所需的游戏模块和运行时地址。 4. 使用 Microsoft Detours 对渲染函数进行 hook。 5. 在游戏渲染上下文中初始化 Dear ImGui。 6. 功能模块读取或修改本地运行时数据。 7. 覆盖层提供功能配置和状态控制。 8. `Delete` 键用于切换菜单。 具体的偏移量取决于版本。更新游戏可能需要更新 `offsets` 模块中存储的值。 ## 🚀 构建项目 ### 前置要求 * Windows * Visual Studio 2022 * 使用 C++ 的桌面开发工作负载 * 支持 ISO C++20 * x86 构建工具 * Dear ImGui 源文件 * Microsoft Detours * vcpkg * 本地受控的 AssaultCube 安装 ### 1. 克隆仓库 ``` git clone https://github.com/s7shvets7s/simple_ac_internal_cheat.git cd simple_ac_internal_cheat ``` ### 2. 添加 Dear ImGui 在项目根目录中创建以下目录: ``` external/imgui/ ``` 将所需的 Dear ImGui 头文件和源文件添加到该目录中,并将它们包含在 Visual Studio 项目中。 预期结构: ``` external/ └── imgui/ ├── imgui.cpp ├── imgui.h ├── imgui_draw.cpp ├── imgui_tables.cpp ├── imgui_widgets.cpp └── required backend files ``` ### 3. 安装 Detours 通过 vcpkg 安装 Microsoft Detours,并将 vcpkg 安装连接到 Visual Studio。 ``` vcpkg install detours:x86-windows vcpkg integrate install ``` ### 4. 配置 Visual Studio 1. 打开 `simple_ac_internal_cheat.sln`。 2. 选择 `Release` 配置。 3. 选择 `x86` 平台。 4. 将语言标准设置为 **ISO C++20 (`/std:c++20`)**。 5. 验证 ImGui 和 Detours 的包含路径。 6. 构建解决方案。 ``` Build → Build Solution ``` 生成的 DLL 将生成在配置的 Visual Studio 输出目录中。 ## 🧪 本地测试 仅在本地受控的 AssaultCube 安装中使用该项目,最好在带有机器人的离线游戏中使用。 要进行受控的本地演示: 1. 使用 `Release | x86` 配置构建项目。 2. 启动兼容的 AssaultCube 版本。 3. 使用适当的开发或调试加载器,将编译好的 DLL 加载到本地 `ac_client.exe` 进程中。 4. 按 `Delete` 键打开或关闭覆盖层。 5. 通过菜单启用所需的实验性功能。 ## ⚠️ 局限性 * 该项目针对特定 x86 版本的 AssaultCube。 * 内存地址和偏移量可能在游戏更新后失效。 * 该实现是一个教育原型,而不是生产质量的软件。 * 某些功能逻辑可能需要额外的验证和重构。 * 该项目不包括自动偏移扫描器。 * 不支持与其他游戏或架构的兼容性。 * 没有任何绕过反作弊系统的尝试。 ## ⚠️ 免责声明 该仓库旨在在受控的本地环境中演示 C++、Windows 内部原理、运行时内存、图形 hook 和逆向工程概念。 作者不鼓励或支持: * 在公共或竞技性多人游戏中作弊; * 绕过反作弊或安全系统; * 干扰其他玩家; * 违反游戏规则或服务条款; * 在未经授权的情况下对系统使用代码; * 出于恶意目的分发修改后的二进制文件。 仅对您拥有或明确授权测试的软件和系统使用此仓库。 对于因使用源代码而导致的封号、损害、违规、滥用或任何后果,作者不承担任何责任。 ## 📄 许可证 本项目基于 **The Unlicense** 发布。 有关完整的许可证文本,请参见 [LICENSE.txt](LICENSE.txt)。 该许可证适用于源代码,但不授予违反第三方软件规则、许可证或条款的权限。
**由 aRecll 开发** C++ 与逆向工程教育项目
标签:C++20, WinAPI, 云资产清单, 内存修改, 函数Hook, 游戏外挂, 端点可见性, 逆向工程