Akebi-GC开源游戏增强框架如何用内存 Hook 接管一场游戏【免费下载链接】Akebi-GC(Fork) The great software for some game that exploiting anime girls (and boys).项目地址: https://gitcode.com/gh_mirrors/ak/Akebi-GCAkebi-GC 是一款面向《原神》的开源游戏增强框架用 C 把扩展库注入正在运行的游戏进程再通过内存 Hook 与特征码扫描接管游戏内部函数提供自动拾取、传送、透视等能力。它最独特的切入点在于所有目标函数地址都不硬编码而是用特征串 通配符写进外部 JSON运行时实时扫描求解。读完这篇你会理解注入 → Hook → 功能生效的完整链路以及几个值得抄进自己项目的设计决策。它解决了什么问题游戏一更新功能就全断了吗先说最头疼的一件事游戏每发一个版本内存里所有函数的地址都会偏移。传统做法是开发者手动找到新地址、改代码、重新编译一次更新就是一场苦工。Akebi-GC 的答案是把几十个目标函数写成特征字节串 偏移存放在res/signatures.json里每次启动时在游戏内存中自动扫描当场算出真实地址。用户侧的痛点则相反砍树、采药、捡掉落物、开箱子这些重复劳动实在琐碎。这个项目把 70 个功能文件收进同一个界面——上帝模式、自由飞行、自动拾取、宝箱传送、透视都按 F1 开菜单即可切换。这两个问题背后是同一套底座它就是怎么搭起来的项目图标注入器同款形象核心机制用大白话讲清注入与内存 Hook 第一步是送货。注入器 injector.exe 就像一个快递员它找到目标游戏进程把 CLibrary.dll 这个包裹塞进对方的进程空间。送货有两种方式——让系统代为加载LoadLibrary或者自己把 DLL 逐个区段搬进对方内存手动映射项目用编译宏在两种策略间二选一。这段决策代码只有几行bool InjectDLL(HANDLE hProc, const std::string filepath) { #ifdef MANUAL_MAP bool result ManualMapDLL(hProc, filepath); #else bool result LoadLibraryDLL(hProc, filepath); #endif return result; }它处在整条流程的最前端注入成功后后续所有 Hook 和功能都已经在游戏进程内部执行了。第二步是装转接台。所谓 Hook相当于在游戏的函数前加一道柜台——游戏以为自己在调用判断物品是否在拾取范围内实际先经过我们写的代码处理。Akebi-GC 基于 Detours 库做 C 函数拦截自动拾取功能注册 Hook 时只需要一行HookManager::install(app::MoleMole_LCSelectPickup_IsInPosition, LCSelectPickup_IsInPosition_Hook);被顶替的原函数并没有丢而是存进内部映射表随时可用 CALL_ORIGIN 回调原始逻辑——这让接管但不破坏成为可能。那目标函数到底怎么找到PatternScanner 拿 JSON 里的特征串形如40 88 BC 24 D8 ?? ????是通配符在游戏模块里做字节级匹配。地址变了不怕字节特征还在就能扫出来。功能地图三层结构如何分工协作从使用者视角走一遍运行 injector.exe 注入 → 库在进程内轮询等待游戏核心模块UserAssembly.dll出现再留 15 秒给游戏初始化 → 按 F1 打开菜单 → 打开某个功能 → 配置写入 cfg.json 即时生效 → 出问题时可一键卸掉全部 Hook 恢复现场。支撑这条链路的是一层套一层的结构。底层 cheat-base 只提供能力、不懂游戏Hook 管理器、特征码扫描器、事件总线、配置序列化、日志。中间层负责 IL2CPP 运行时初始化与类型定义把游戏对象暴露给上层。功能层则是 70 个.cpp/.h文件按目录分成五块player无敌/无冷却/飞行、world自动拾取/自动烹饪/吸物、teleport宝箱/神瞳/地图传送、visuals透视/隐藏 UI、game实体管理器加过滤链。一个功能如何长出来以 AutoLoot 为例构造时安装 3 个 Hook 改写游戏的距离判断同时订阅GameUpdateEvent按帧驱动拾取节奏过滤链决定哪些实体值得捡。仓库里 592 张高清物品图标就服务于这类过滤与界面显示。实体过滤功能使用的物品图标592 张同类资源之一跑起来之前最低环境与两条上手路径 ⚙️最低环境要求Windows 10/11 x64Visual Studio 2022勾选使用 C 的桌面开发工作负载构建akebi-gc.sln解决方案含 cheat-base、cheat-library、injector 三个项目依赖的 Detours、nlohmann-json 等由项目内框架层集成无需额外系统级安装两条分叉路径只想跑通从 Releases 取预编译版本确认CLibrary.dll与injector.exe在同一目录启动注入器登录界面出现后按 F1想开发新功能克隆仓库git clone https://gitcode.com/gh_mirrors/ak/Akebi-GC构建解决方案后在cheat-library/src/user/cheat/对应目录新增一对.h/.cpp继承 Feature 类、声明 NF 配置项、用 HookManager 注册拦截再把它加进 vcxproj值得借鉴的工程实践以及它的边界三个具体决策都值得写进自己的设计笔记。其一签名外置成数据而非代码。找什么函数名和怎么找特征串全部进 JSON版本适配时只换数据文件扫描逻辑零改动。这本质上是把适配层从二进制里剥离出去。其二功能自描述。每个功能继承 Feature 基类用 NF 宏声明配置项名称、分组、默认值再用 GetGUIInfo 声明自己属于哪个菜单页。界面控件和 cfg.json 的键由同一份声明生成菜单文案和配置文件永远不会对不上号。其三注入策略用编译宏切换。调用点只写InjectDLL具体走手动映射还是 LoadLibrary 由#ifdef MANUAL_MAP决定——策略可换接口不动。边界也要说清楚整个框架深度绑定《原神》的 IL2CPP 运行时和 Windows 用户态 APIappdata 类型定义和功能集都是游戏专属的想移植到别的游戏等于重写一半。另外代码自己在 GUI 里就写着滥用自定义拾取范围有封号风险——它是学习用的人机交互内存样本不是开箱即用的通用内存 Hook 工具箱。想系统学习 C 函数拦截实现、特征码扫描设计以及配置驱动 GUI 自动生成如何管理几十个大功能HookManager.h、PatternScanner.cpp 和 AutoLoot.cpp 这三个文件值得逐行过一遍。如果你的目标是跨平台或多游戏通用框架这个项目帮不上忙止步于此即可。【免费下载链接】Akebi-GC(Fork) The great software for some game that exploiting anime girls (and boys).项目地址: https://gitcode.com/gh_mirrors/ak/Akebi-GC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考