> For AI agents: the complete documentation index is available at https://renmori.mewbaka.cn/llms.txt, the full documentation bundle is available at https://renmori.mewbaka.cn/llms-full.txt.

# 威胁模型

RenMori 如实说明客户端保护能做到什么、不能做到什么。本页是本项目及其对外宣传所能作出的一切宣称的基准，在作出任何承诺之前请先阅读本页。

## 无法回避的前提

Ren'Py 游戏运行在玩家的机器上。引擎要运行就必须读取自身的资源，因此：

- 解密逻辑随游戏一同分发
- 密钥材料可在客户端派生，否则无法解密
- 最终渲染的画面与解码后的音频必然存在于内存与屏幕之上

因此，**任何客户端工具都无法使游戏不可破解。** 一名熟练且坚持的攻击者，只要拥有分发出去的二进制、调试器与足够的时间，终究能够从任意一款游戏中提取出任意单项资源。这就是白盒问题，历史上所有本地 DRM 方案最终都未能克服它。任何与此相反的说法，都是对客户端保护能力的错误描述。

## RenMori 实际改变了什么

现实可行的手段，按价值排序：

1. **使现成工具失效**：`unrpa`、`rpatool`、`RenPack`、`RenpyEx` 与 `unrpyc`（包括 `--try-harder` 与 `un.rpyc` 注入）在受保护的构建上全部失效；这一点之所以重要，是因为现实中绝大多数资源提取与脚本泄露事件，都只是有人运行了其中某个工具，而仅会调用这些工具的 AI Agent 也属于同一类
2. **使破解无法迁移**：逐构建多态意味着逆向一款游戏只能得到仅适用&#x4E8E;_&#x8BE5;游戏、该版&#x672C;_&#x7684;工具，而非可复用的解包器，因此不存在可在论坛上传播的“RenMori 解包器”
3. **使旧破解随时间失效**：每次发布都会轮换方案，泄露或已被逆向的旧构建对新构建毫无帮助
4. **磁盘上无明文**：任何时刻都不会有任何文件（包括字体）以解密状态留在文件系统上

## RenMori 无法阻止的攻击

请向用户如实说明以下几点：

- **对显示内容的屏幕截图与录屏**：从定义上即无法阻止
- **熟练攻击者的内存提取**（例如针对运行中进程的 NinjaRipper 一类工具）：惰性分块解密会抬高成本，但无法阻止
- **针对某一款游戏、愿意投入时间的专家**：他们能够攻破这一款游戏的这一个版本，但无法将这次成果转化为通用工具

要真正阻止注入式提取器，需要内核级反作弊。这超出了本项目的范围，对玩家不友好，并且与性能优先及 Steam Deck/Proton 兼容的目标相冲突。

## 本项目获准作出的宣称

> RenMori 使所有标准的 Ren'Py 解包与反编译工具失效，磁盘上不留明文，并使每次构建各不相同，从而使通用解包器无从存在。它将提取的成本抬高到针对单一游戏、单一版本的专家级投入。它不能、也无法使游戏不可破解。

任何比这更强的说法都缺乏依据，不得出现在文档、README 或任何宣传材料中。最终用户许可协议（EULA）中包含与之对应的、不保证不可破解的条款。
