基于《明日方舟:终末地》(Arknights: Endfield)的 D3D11/DXGI Hook、ImGui 与 il2cpp 逆向技术构建的渲染与功能框架类学习研究项目。
LWC 是一个用于学习图形 API Hook、游戏逆向工程与自绘 UI 框架的 C++ 研究项目,展示了从 DLL 注入、渲染 Hook、il2cpp 运行时解析到现代化游戏内界面的完整技术链路。
| 技术 | 用途 |
|---|---|
| D3D11 / DXGI Hook | 拦截 Present / ResizeBuffers,接管渲染管线实现叠加绘制 |
| ImGui + ImPlot | 游戏内自绘界面与图表 |
| MinHook | 内联函数 Hook |
| il2cpp 逆向 | 运行时类/方法/字段解析,通过 il2cpp::CallFunc 调用游戏函数 |
| stb_image / WinAPI 资源系统 | 纹理与图标加载 |
- 绘制系统 :D3D11 渲染 Hook、纹理管理、ImPlot 图表、缓动动画(Easing)库
- 自定义 UI 组件 (MYGui):动画滑条、开关、下拉框、热键、调色板、通知弹窗等
- 实体与场景 :il2cpp 实体遍历、相机控制、世界坐标到屏幕投影
- ESP 渲染 :方框、连线、距离、骨骼等信息绘制
- 游戏功能 :击杀光环、物体收集、吸物、无限滑索、模型缩放、移动/飞行等(均为研究用途的技术演示)
- 配置系统 :基于 JSON 的配置持久化,支持多配置切换、导入导出
- 安全机制 :拦截检测(Check Hook)、编译期混淆
LWC/
├── LWC.sln # Visual Studio 解决方案
├── LWC/ # 主项目
│ ├── dllmain.cpp # DLL 入口
│ ├── LWC.rc / resource.h # 资源文件
│ ├── all/
│ │ ├── Hook/ # D3D11/DXGI Hook、功能 Hook
│ │ ├── il2cpp/ # il2cpp 解析与调用封装
│ │ ├── Fun/ # ESP、相机、战斗、实体、配置等功能模块
│ │ ├── UI/ # 菜单
│ │ └── D3DResourcesInt/ # D3D 资源初始化与图像加载
│ ├── MYGui/ # 自定义 ImGui 组件库
│ ├── ImGui/ # ImGui / ImPlot
│ ├── minhook/ # MinHook
└── LICENSE.md # 开源协议
环境要求
- Visual Studio 2022(工具集 v143)
- Windows SDK 10.0
- C++ 语言标准:
stdcpplatest
步骤
- 用 Visual Studio 打开
LWC.sln - 选择
Release | x64配置,生成解决方案 - 输出:
x64/Release/LWC.dll
- 本项目按"现状"(AS IS)提供,不提供任何形式的保证
- 本项目与鹰角网络(Hypergryph)及《明日方舟:终末地》官方无任何关联,游戏及相关素材版权归其开发商所有
- 使用本项目造成的一切后果(包括但不限于账号封禁、数据丢失、法律纠纷)由使用者自行承担
- 详见 LICENSE.md
本项目采用自定义开源协议发布:::完全免费,禁止任何形式的收费传播或售卖::(包括卡密、会员、变相捐赠等),二次开发作品必须同样免费开源并保留本协议。完整内容见 LICENSE.md。