docs(readme): replace Mod path with -javaagent, add optional UPX prereq

The Forge mod entry point no longer works in this project, so the
build section was steering people toward a path that wouldn't load.
Reframe the two delivery shapes as Java Agent jar and hot-injector
EXE, with a callout that mods/ is unsupported.

Other readme drift caught in this pass:
- UPX listed as an optional common prerequisite with install
  instructions (choco / upx.github.io) — the upxCompress task already
  no-ops when upx isn't on PATH, this just makes the option visible.
- 使用注入器 步骤 updated for the Inject-button UI (previously
  documented "double-click a row").
- 删除 stale "构建流程" 列表 in the injector section.
- 后门 段更新 + 布吉岛 段加删除线 reflecting current detection
  status (user-authored edits picked up in the same commit).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Shirona1337
2026-05-25 01:16:27 +08:00
parent ecc29d4e82
commit dea5cf6270
+27 -19
View File
@@ -34,9 +34,9 @@
## 后门
原版的Zen存在大量后门,例如上报QQ、屏幕截图、扫描文件、上传文件、远程执行命令等。因此我们不推荐任何用户继续使用原版Zen,除非你愿意现在把你身上的衣服脱掉然后去本地人最多的广场裸舞,然后把自己裸舞的视频发送到Zen的群内。
> Zen开发者称,所有的后门都未实现未引用,是由夏天完成的。但笔者在分析其Native时发现了完整引用,暂且蒙古。
由于精神马来西亚人从小父母双亡,无父无母的精神马来西亚人自幼脑回路不正常。
![Snapshot](./img/meme.jpg)
经过分析,当你登录Zen后就会自动触发屏幕截图。同时已有用户反馈,当你狗叫Zen开发者后,其开发者将会把你的电脑屏幕截图发送至QQ群内,所以请你不要狗叫Zen开发者。
[详细分析](./mapping/BACKDOOR.md)
@@ -50,17 +50,26 @@
## 构建
OpenZen 支持两种交付形式:**Forge Mod (jar)** 和 **热注入器 (单文件 EXE,内嵌 DLL)**。Mod 路径只要 JDK,注入器路径还需要 MSVC 工具链。
OpenZen 支持两种交付形式:**Java Agent jar**(挂到 Minecraft JVM 启动参数里)和 **热注入器 (单文件 EXE,内嵌 DLL)**。Agent 路径只要 JDK,注入器路径还需要 MSVC 工具链。
> **本项目不能作为 Forge mod 启动。** `mods/` 加载路径不被支持,不要把 jar 丢进 `.minecraft/mods/`。
### 共同前置
- **JDK 17**(推荐 Microsoft Build of OpenJDK / Temurin / Azul Zulu 任一)。
- 必须设置 `JAVA_HOME` 环境变量指向该 JDK 安装目录(PowerShell 验证:`echo $env:JAVA_HOME`)。
- 仓库根目录用 `gradlew.bat` 即可,**不需要**单独安装 Gradle。
- **可选:UPX** —— 仅热注入器路径会用到,作用是把最终的 `OpenZenLoader.exe` 从 ~32 MB 压到 ~10 MB。在 `PATH` 上检测到 `upx` 时 `./gradlew upxCompress` 会自动跑 `--best --lzma`;找不到就只打一条 warning 直接跳过,不影响功能。安装方式:
```powershell
choco install upx -y
```
或者从 <https://upx.github.io/> 下载 ZIP 并把 `upx.exe` 加进 `PATH`。
首次执行会从 ForgeMaven 下载 1.20.1 + Forge 47.4.20 的 mappings 和依赖,耗时几分钟到十几分钟,取决于网络。
### 1. 构建为 Forge Mod (jar)
### 1. 构建为 Java Agent jar
零额外依赖。
@@ -68,7 +77,13 @@ OpenZen 支持两种交付形式:**Forge Mod (jar)** 和 **热注入器 (单
.\gradlew.bat jar
```
产物:`build/libs/hey-1.0-SNAPSHOT.jar`。把它丢进 `.minecraft/mods/`,按正常 Forge mod 启动即可。Mod ID 是 `hey`,Mod 列表里不会显示(`MinecraftPatch.onTick` 启动时会把自己从 `ModList` 摘掉)。
产物:`build/libs/hey-1.0.jar`。在 Forge 启动器的 JVM 启动参数里加上:
```
-javaagent:"完整\路径\到\hey-1.0.jar" -Djdk.attach.allowAttachSelf=true
```
`PatchAgent.premain` 会在 Minecraft 类加载之前装载所有 ASM 补丁;`-Djdk.attach.allowAttachSelf=true` 是让 `installPatchesAndRetransform` 在需要时能兜底走 Attach API。
### 2. 构建为热注入器 (单文件 EXE)
@@ -100,22 +115,14 @@ OpenZen 支持两种交付形式:**Forge Mod (jar)** 和 **热注入器 (单
.\gradlew.bat dll
```
产物:`build/dist/OpenZenLoader.exe`(OpenZen.dll 已内嵌为 RCDATA 资源段)。
构建流程:
1. `jar` → 编译 Java 源码,执行 `reobfJar` 把字节码 mojmap→SRG
2. `stageNativeJar` → 拷 jar 到 `native/zen.jar`,等待 DLL 把它作为资源段嵌入
3. `configureNative` → CMake configure (`-A x64`)
4. `buildNative` → 先 build `OpenZen.dll`,CMake 自定义命令把 DLL 拷到 loader 的 binary dir,rc.exe 再嵌入到 `OpenZenLoader.exe`
5. `packageDist` → 把 EXE 拷到 `build/dist/`
产物:`build/dist/OpenZenLoader.exe`。如果已装 UPX 想顺便压缩,跑 `.\gradlew.bat upxCompress`。
#### 使用注入器
1. 用 HMCL / Forge 启动器正常启动 Minecraft 1.20.1 Forge(**不需要**任何特殊 JVM 参数)。
2. 双击 `OpenZenLoader.exe`(会弹一次 UAC 提权)。
3. GUI 自动列出系统里**所有 Minecraft 实例**(按窗口标题 startsWith `Minecraft` 且不含 `Launcher` 过滤),每秒自动刷新一次。
4. **双击对应的行**就开始注入。
5. 状态栏出现 `Injected into PID ...` 即成功;Minecraft 内右 Shift 触发 ClickGUI 验证。
2. 双击 `OpenZenLoader.exe`。
3. GUI 自动列出系统里**所有 Minecraft 实例**,每秒自动刷新一次。
4. 点击行最后的 Inject 按钮。
诊断日志:
- Native 端:`%TEMP%\openzen.log`
@@ -124,8 +131,9 @@ OpenZen 支持两种交付形式:**Forge Mod (jar)** 和 **热注入器 (单
## 常见问题
### 布吉岛反作弊绕过
截止至目前(2026/05/23),布吉岛并未检测本项目,考虑其反作弊为黑名单类名机制。
建议构建时修改类名。
~~截止至目前(2026/05/23),布吉岛并未检测本项目,考虑其反作弊为黑名单类名机制。~~
~~建议构建时修改类名。~~
类名已黑名单,请在构建时修改类名。
## 致谢