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 框架 Group 88 ## 概述 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) 文件。
标签:Bash脚本, C++, DLL注入, JNI, Minecraft, OpenGL, 数据擦除, 流量审计, 游戏作弊, 游戏开发框架, 端点可见性