OttoTre/DllStalker-public
GitHub: OttoTre/DllStalker-public
一个用于 Unity 运行时自动解析与 Hook 的 C++ 模板工具,解决手动偏移依赖与动态地址定位难题。
Stars: 0 | Forks: 0
# Unity-Auto-Resolver
一个用于 Unity 游戏(IL2CPP/Mono)的 C++ 内部 DLL 模板,具备由 `UnityResolver` 驱动的自动运行时解析能力。
## 概述
本项目围绕运行时自动化构建:
- 自动程序集发现
- 自动方法地址查找
- 自动字段偏移解析
- 基于 MinHook 的游戏逻辑 Hook
与手动偏移工作流不同,字段数据会通过 `UnityResolver` 在运行时动态解析。
## 功能
- **自动数据解析(`UnityResolver`)**
- 检测 IL2CPP(`GameAssembly.dll`)或 Mono(`mono-2.0-bdwgc.dll`)
- 动态解析引擎导出(`il2cpp_*` / `mono_*`)
- 在运行时查找目标程序集镜像
- 无需硬编码字段偏移即可解析方法地址与字段偏移
- **基于 MinHook 的 Hook**
- 在 `src/hooks.cpp` 中集中设置 Hook
- 挂钩/原始函数配对并记录状态日志
- 通过 `StartHooking(...)` 进行预设路由
- **示例 Hook(`Hooks::Dane::hkAwake`)**
- Hook `SettingsManager::Awake`
- 动态解析 `hackMode` 偏移
- 将配置值直接写入实例
- **可选的运行时转储器(`UnityDumper`)**
- 类/方法/字段转储辅助工具
- 运行时对象检查工具
## 构建模式说明
`UnityDumper` 由 `include/pch.h` 中的 `ENABLE_DUMPER` 控制:
- **调试构建**:默认启用转储器
- **发布构建**:默认禁用转储器
若需要运行时检查/调试器风格的检查,请以 **Debug** 模式编译。
## 项目结构
```
DllStalker/
├── include/
│ ├── hooks.h
│ ├── hooks_definitions.h
│ ├── hooks_definition/
│ │ └── dane.h
│ ├── unity_resolver.h
│ ├── unity_dumper.h
│ └── pch.h
├── src/
│ ├── dllmain.cpp
│ ├── hooks.cpp
│ ├── hooks_definition/
│ │ └── dane.cpp
│ ├── unity_resolver.cpp
│ ├── unity_dumper.cpp
│ └── pch.cpp
└── DllStalker.vcxproj
```
## 运行时流程
1. `DllMain` 启动 `MainThread`
2. `UnityResolver::Init()` 等待 Unity 运行时并解析导出
3. 定位目标程序集镜像(默认:`Assembly-CSharp`)
4. `StartHooking(...)` 初始化 MinHook 并应用所选的 Hook 预设
## 免责声明
本仓库仅供逆向工程教育与在已获明确许可的环境中进行运行时仪器化使用。你需对法律与策略合规性负责。
标签:C++ DLL, C++内部DLL, Debug构建, Dumper, Hook模板, IL2CPP, MinHook, Mono, Release构建, runtime hook, Unity插件, Unity游戏修改, 云资产清单, 内存修改, 动态加载, 引擎导出解析, 游戏外挂, 游戏插件, 自动字段偏移, 自动方法解析, 自动装配发现, 运行时解析, 逆向工程, 钩子