kxigor/AimbotFramework

GitHub: kxigor/AimbotFramework

一个以单机 Far Cry 3 为实验平台的 C++23 学习项目,通过构建辅助瞄准框架来实践 Win32 API、DLL 注入与 3D 几何等底层技术。

Stars: 0 | Forks: 0

# AimbotFramework 一个个人的 C++23 项目,旨在学习 Windows API、逆向工程和 3D 几何,并以单机版 **Far Cry 3**(Dunia 引擎)作为研究对象。该项目仍在开发中:底层基础设施已经可用,特定游戏和辅助瞄准逻辑仍在编写中。 `afw` = **A**imbot**F**rame**w**ork(命名空间/目标前缀)。 ## 状态 已实现: - **`afw::win`** — 原始 Win32 资源的 RAII 包装器:`ScopedHandle`(`CloseHandle`)、`RemoteMemory`(在另一个进程中执行 `VirtualFreeEx`),以及一个将 `GetLastError` 转换为 `std::error_code` 的 `LastError()` 辅助函数。 - **`afw::remote`** — 按名称查找进程,并通过经典的 CreateRemoteThread + LoadLibraryW 技术向其注入 DLL。以 `std::expected` 的形式报告错误。 - **`injector.exe`** — 独立工具,负责定位目标并将 `aimbot.dll` 加载到其中。 - **`aimbot.dll`** — 存根 `DllMain`,目前可以编译,后续将用于承载以下库。 待编写: - **`afw::process`** — 对宿主进程的通用访问(模块基址、特征码扫描、内存辅助功能)。与引擎无关。 - **`afw::games::fc3`** — Far Cry 3(Dunia)绑定:偏移量、结构体、实体/骨骼/视图矩阵读取。依赖于 `afw::process`。每个游戏对应一个库,以便未来可以将更多游戏作为 `afw::games::` 加入其中。 - **`afw::aimbot`** — 辅助瞄准逻辑,保持与引擎无关(游戏在接口背后进行接入)。 ## 布局 ``` CMakeLists.txt root: options (AFW_*) and subdirectories CMakePresets.json UCRT64-oriented presets cmake/ ProjectOptions / Sanitizers / Coverage / Format / Tidy / Gtest include/afw/ public headers (sibling of src/) win/ afw::win (implemented) remote/ afw::remote (implemented) process/ games/ aimbot/ headers (planned) src/ win/ afw::win (STATIC, Windows-only) remote/ afw::remote (STATIC, Windows-only) process/ games/fc3/ aimbot/ (STATIC, empty namespaces for now) injector/ injector.cpp injector.exe -> loads aimbot.dll via afw::remote dll/ dllmain.cpp stub entry point -> aimbot.dll tests/ GTest + CTest wiring scripts/ check_format.py / check_tidy.py (no bash dependency) ``` ## 构建(通过 MSYS2 **UCRT64** shell) `cmake`、`ninja` 和 `clang` 位于 UCRT64 环境中,而不是 MINGW64。 ``` # 主要开发构建:GCC, Debug, 测试 + DLL, 无 sanitizer cmake --preset dev-debug cmake --build --preset dev-debug ctest --preset dev-debug # 仅发布 DLL -> build/ci-release/dll/aimbot.dll cmake --preset ci-release cmake --build --preset ci-release ``` 输出的 DLL 是 `aimbot.dll`(没有 `lib` 前缀),并且静态链接了 MinGW 运行时,因此不需要宿主机搜索路径中存在 MSYS2 运行时 DLL,同时启用了 PE 加固(`--dynamicbase --nxcompat --high-entropy-va`)。 ### 预设 | 预设 | 类型 | 备注 | |---------------------|----------------|----------------------------------------| | `dev-debug` | Debug | GCC,无 sanitizer(默认开发构建) | | `dev-debug-asan` | Debug | ASan+UBSan,强制使用 `clang++` | | `dev-debug-ubsan` | Debug | UBSan,强制使用 `clang++` | | `ci-coverage` | Debug | gcov 插桩 | | `ci-relwithdebinfo` | RelWithDebInfo | 开启测试 | | `ci-release` | Release | 仅 `aimbot.dll`,关闭测试 | ## 选项 | 选项 | 默认值 | 含义 | |--------------------------|--------------------|----------------------------------| | `AFW_BUILD_DLL` | ON(顶层+Win) | 构建 `aimbot.dll` | | `AFW_BUILD_INJECTOR` | ON(顶层+Win) | 构建 `injector.exe` | | `AFW_BUILD_TESTS` | ON(顶层) | 构建 GTest 套件 | | `AFW_ENABLE_FORMAT_CHECK`| ON(顶层) | 将 clang-format 注册为测试 | | `AFW_ENABLE_TIDY_CHECK` | ON(顶层) | 将 clang-tidy 注册为测试 | | `AFW_ENABLE_COVERAGE` | OFF | gcov 目标(需要测试) | ## 许可证与范围 教育用途源码可见许可证(详见 `LICENSE`):允许出于**教育、非商业**用途进行查看、学习、编译和修改,不提供任何担保,也不承担任何责任。仅限单机模式使用(Far Cry 3 的在线服务已停止)——严禁用于多人游戏/规避反作弊系统。</div><div><strong>标签:</strong>Bash脚本, C++23, DLL注入, Gophish, Linux, Windows API, 云资产清单, 内存读取, 字典生成, 流量审计, 游戏外挂框架, 逆向工程, 高性能</div></article></div> <!-- 人机验证 --> <script> (function () { var base = (document.querySelector('base') && document.querySelector('base').getAttribute('href')) || ''; var path = base.replace(/\/?$/, '') + '/cap-wasm/cap_wasm.min.js'; window.CAP_CUSTOM_WASM_URL = new URL(path, window.location.href).href; })(); </script> </body> </html>