vifezdev/viper
GitHub: vifezdev/viper
Viper 是一个用 C++17 编写的 Minecraft 1.8.9 注入式运行时开发框架,解决了开发者从零搭建 DLL 注入、JNI 集成、OpenGL 渲染钩子和 IPC 通信等底层基础设施的痛点。
Stars: 1 | Forks: 0
# Viper | Minecraft 1.8.9 Ghost Client Runtime 框架
## 概述
Viper 是专为 Minecraft 1.8.9 设计的整洁、无头注入器引擎与基础框架。
**注意:** 这*不是*一个已完成的、可直接用于游戏的客户端。它是一个“白板”开发者框架。它提供了所有必要的底层基础结构,包括 JNI 反射、无锁 OpenGL 渲染 Hook 以及二进制 IPC 通信……**因此你可以专注于构建自己的自定义模块和功能,而无需重复造轮子。**
## 主要特性
- **多环境支持:** 能够安全地解析 Vanilla、Forge 和 Lunar Client 环境中的 Java 类。
- **线程安全架构:** 采用现代 C++17 构建,利用 RAII 包装器、原子 hazard pointers 和自定义线程池,保证 100% 无崩溃的 DLL 注入与卸载生命周期。
- **安全的 OpenGL Hooks:** 集成 MinHook 用于 `wglSwapBuffers`,并严格保留 OpenGL 状态,使你能够在游戏中安全地渲染 2D 覆盖层而不会出现画面损坏。
- **高性能 IPC:** 实现了异步 Named Pipe 服务器,用于与外部控制器进行二进制分帧的 JSON 通信。
## 架构
```
flowchart LR
A[viper-bootstrap.exe
• Process scanning
• JVM validation
• DLL injection] B[viper-runtime.dll
• JNI Integration
• Event System
• Module Framework
• OpenGL Renderer] A -->|Inject DLL| B style A fill:#1f2937,stroke:#60a5fa,color:#fff style B fill:#111827,stroke:#22c55e,color:#fff ``` ## 组件 ``` flowchart TB S["viper-shared
Static Library
• Types
• Logging (spdlog)
• Platform
• IPC Protocol"] J["viper-jni
Static Library
• JVM Attachment
• Class Loading
• JNI Guards"] I["viper-ipc
Static Library
• Named Pipes
• Message Handler
• IPC Protocol"] M["viper-minecraft
Static Library
• MC Detection
• Core Abstraction
• Events
• Modules"] R["viper-runtime.dll
Runtime DLL
• Runtime Coordinator
• Loaded Into Minecraft"] B["viper-bootstrap.exe
Executable
• Environment Discovery
• JVM Validation
• DLL Injection"] B --> R R --> J R --> I R --> M J --> S I --> S M --> S style B fill:#1f2937,stroke:#60a5fa,color:#fff style R fill:#111827,stroke:#22c55e,color:#fff style M fill:#312e81,stroke:#818cf8,color:#fff style J fill:#374151,stroke:#a78bfa,color:#fff style I fill:#374151,stroke:#34d399,color:#fff style S fill:#374151,stroke:#fbbf24,color:#fff ``` ## 支持的环境 | 环境 | 检测方式 | 类加载方式 | |-------------|-----------|---------------| | Vanilla 1.8.9 | JVM 参数、主类 | `FindClass` | | Forge 1.8.9 | LaunchWrapper 类 | `LaunchClassLoader.findClass` | | Lunar Client | Lunar bootstrap | Context classloader | *注意:支持并兼容 Lunar Client。不保证其他自定义或未列出的启动器能正常运行。* ## 构建要求 - **Windows x64** (Windows 10+) - **Visual Studio 2022**(包含 C++ 桌面开发工作负载) - **CMake 3.20+**(使用 Ninja 生成器) - **Java 8 JDK x64**(确保已设置 `JAVA_HOME`) ## 快速开始 ### 构建 C++ 后端 ``` cmake --preset x64-Release cmake --build --preset x64-Release ``` ## 使用模式 ### 自动模式(推荐) ``` build\x64-Release\bin\Release\viper-bootstrap.exe ``` 自动检测正在运行的 Minecraft 实例并注入运行时 DLL。如果未找到,将记录错误并退出。 ### 注入模式 ``` viper-bootstrap.exe --inject viper-bootstrap.exe --inject
```
对已运行的 Minecraft 进程使用标准的远程线程注入。
## IPC 协议
该框架使用二进制分帧消息公开了一个 Named Pipe (`\\.\pipe\viper-ipc-`),以便与外部工具集成:
```
┌──────────────────────────────────────────┐
│ Header (18 bytes, packed) │
│ u32 magic = 0x52504956 ("VIPR") │
│ u16 version = 1 │
│ u16 type = MessageType enum │
│ u32 payloadSize │
│ u32 sequenceId │
│ u16 reserved = 0 │
├──────────────────────────────────────────┤
│ Payload (0..65536 bytes) │
│ JSON string │
└──────────────────────────────────────────┘
```
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 概述
Viper 是专为 Minecraft 1.8.9 设计的整洁、无头注入器引擎与基础框架。
**注意:** 这*不是*一个已完成的、可直接用于游戏的客户端。它是一个“白板”开发者框架。它提供了所有必要的底层基础结构,包括 JNI 反射、无锁 OpenGL 渲染 Hook 以及二进制 IPC 通信……**因此你可以专注于构建自己的自定义模块和功能,而无需重复造轮子。**
## 主要特性
- **多环境支持:** 能够安全地解析 Vanilla、Forge 和 Lunar Client 环境中的 Java 类。
- **线程安全架构:** 采用现代 C++17 构建,利用 RAII 包装器、原子 hazard pointers 和自定义线程池,保证 100% 无崩溃的 DLL 注入与卸载生命周期。
- **安全的 OpenGL Hooks:** 集成 MinHook 用于 `wglSwapBuffers`,并严格保留 OpenGL 状态,使你能够在游戏中安全地渲染 2D 覆盖层而不会出现画面损坏。
- **高性能 IPC:** 实现了异步 Named Pipe 服务器,用于与外部控制器进行二进制分帧的 JSON 通信。
## 架构
```
flowchart LR
A[viper-bootstrap.exe• Process scanning
• JVM validation
• DLL injection] B[viper-runtime.dll
• JNI Integration
• Event System
• Module Framework
• OpenGL Renderer] A -->|Inject DLL| B style A fill:#1f2937,stroke:#60a5fa,color:#fff style B fill:#111827,stroke:#22c55e,color:#fff ``` ## 组件 ``` flowchart TB S["viper-shared
Static Library
• Types
• Logging (spdlog)
• Platform
• IPC Protocol"] J["viper-jni
Static Library
• JVM Attachment
• Class Loading
• JNI Guards"] I["viper-ipc
Static Library
• Named Pipes
• Message Handler
• IPC Protocol"] M["viper-minecraft
Static Library
• MC Detection
• Core Abstraction
• Events
• Modules"] R["viper-runtime.dll
Runtime DLL
• Runtime Coordinator
• Loaded Into Minecraft"] B["viper-bootstrap.exe
Executable
• Environment Discovery
• JVM Validation
• DLL Injection"] B --> R R --> J R --> I R --> M J --> S I --> S M --> S style B fill:#1f2937,stroke:#60a5fa,color:#fff style R fill:#111827,stroke:#22c55e,color:#fff style M fill:#312e81,stroke:#818cf8,color:#fff style J fill:#374151,stroke:#a78bfa,color:#fff style I fill:#374151,stroke:#34d399,color:#fff style S fill:#374151,stroke:#fbbf24,color:#fff ``` ## 支持的环境 | 环境 | 检测方式 | 类加载方式 | |-------------|-----------|---------------| | Vanilla 1.8.9 | JVM 参数、主类 | `FindClass` | | Forge 1.8.9 | LaunchWrapper 类 | `LaunchClassLoader.findClass` | | Lunar Client | Lunar bootstrap | Context classloader | *注意:支持并兼容 Lunar Client。不保证其他自定义或未列出的启动器能正常运行。* ## 构建要求 - **Windows x64** (Windows 10+) - **Visual Studio 2022**(包含 C++ 桌面开发工作负载) - **CMake 3.20+**(使用 Ninja 生成器) - **Java 8 JDK x64**(确保已设置 `JAVA_HOME`) ## 快速开始 ### 构建 C++ 后端 ``` cmake --preset x64-Release cmake --build --preset x64-Release ``` ## 使用模式 ### 自动模式(推荐) ``` build\x64-Release\bin\Release\viper-bootstrap.exe ``` 自动检测正在运行的 Minecraft 实例并注入运行时 DLL。如果未找到,将记录错误并退出。 ### 注入模式 ``` viper-bootstrap.exe --inject viper-bootstrap.exe --inject
标签:Bash脚本, C++, DLL注入, JNI, Minecraft, OpenGL, 数据擦除, 流量审计, 游戏作弊, 游戏开发框架, 端点可见性