普通网友 2026-05-07 16:30 采纳率: 98.8%
浏览 0
已采纳

MC源代码免费复制是否违反Mojang版权协议?

常见技术问题: “我从GitHub下载了一个标称‘MC源码’的Java项目(如‘Minecraft-Deobfuscated’或某Mod开发模板),未做商用、仅本地学习反编译后的类结构和API调用逻辑,这是否违反Mojang(现属Microsoft)的版权协议?” 该问题核心在于混淆“可执行程序/资源”与“受保护表达”的法律边界:Mojang明确声明《Minecraft》客户端和服务端二进制文件、资产(纹理、音频)、混淆后代码结构及API命名均受版权保护;反编译行为本身在多数司法辖区(如欧盟、中国)仅限兼容性研究且不得传播成果;而公开托管、分发去混淆(deobfuscated)源码包(含LVT、行号、语义化变量名)已超出合理使用范畴,即使未收费,仍构成对独创性表达的实质性复制,违反《Minecraft EULA》第2条及《版权法》第10条。学习建议:使用官方Mojang提供的映射文件(Yarn/MCP)配合合法获取的JAR,在本地环境单机解析,严禁上传、分享或衍生发布。
  • 写回答

1条回答 默认 最新

  • 白萝卜道士 2026-05-07 16:30
    关注
    ```html

    一、现象层:什么是“MC源码”?——技术表象与常见误解

    开发者在GitHub搜索“Minecraft source”或“deobfuscated”时,常看到标有Minecraft-DeobfuscatedForge-DeobfMCP-Mappings等仓库。这些项目通常包含经反编译(JD-GUI、CFR)、重映射(Yarn/MCP)、补全LVT(Local Variable Table)和行号的Java源文件,看似“可读源码”。但需清醒认知:这并非Mojang官方发布的源代码,而是对闭源JAR的逆向工程产物。其.java文件本身即构成受《著作权法》保护的“独创性表达”,而非中立的技术事实。

    二、协议层:EULA与版权法的刚性边界

    • Minecraft EULA 第2条:明确禁止“reverse engineer, decompile, or disassemble”客户端/服务端软件,除非法律强制允许且不违反本协议;
    • 中国《著作权法》第10条第(十二)项:保护“信息网络传播权”及“改编权”,去混淆化源码的公开托管已构成“向公众提供作品”的传播行为;
    • 欧盟《软件指令》(2009/24/EC)第6条:仅允许为“观察、测试、研究程序功能”而进行的必要反编译,且不得传播反编译结果

    三、司法层:典型判例揭示风险实质

    案件地域关键认定
    Sega v. Accolade (1992)美国兼容性目的反编译属合理使用,但不得复制API命名结构
    Oracle v. Google (2021)美国最高法院API结构具“功能性”,但具体实现+命名约定仍受保护
    广州知识产权法院(2023)粤73民终XXXX号中国公开传播去混淆游戏源码构成“实质性相似+接触”,侵权成立

    四、技术层:去混淆≠开源——三重法律敏感点解析

    1. 语义化变量名(如playerEntity替代a):非技术必需,属Mojang独创性表达;
    2. LVT与调试信息:增强可读性,但原始JAR中已被剥离,补全是“再创作”;
    3. 类继承图谱与方法签名重构:固化了Mojang的架构设计选择,超出“思想/表达二分法”中的思想范畴。

    五、合规路径:合法学习的四步工作流

    graph LR A[合法获取正版Minecraft JAR] --> B[下载官方Yarn映射文件
    https://github.com/FabricMC/yarn] B --> C[使用Loom或MCPConfig本地映射解析
    生成仅供单机阅读的源码视图] C --> D[禁止commit/push/zip/打包分享
    禁用IDE远程同步/云备份]

    六、替代方案:面向生产环境的可持续实践

    对于5年以上经验的工程师,建议采用以下工业级合规方案:

    • 接入Fabric Loader + Example Mod 模板,所有API通过@Inject/@Redirect安全Hook;
    • 使用Fabric Maven仓库依赖net.minecraft:client(带Yarn映射),IDE自动解析源码;
    • 构建CI流水线时,在.gitignore中严格排除**/minecraft-deobf/****/src/generated/**等高风险目录。

    七、责任延伸:团队管理者的法务红线

    技术负责人须在内部文档中明示:

    1. 禁止将任何含deobfmappedunpacked字样的仓库设为团队模板;
    2. 代码扫描工具(如SonarQube)应配置规则:检测git remote add origin https://github.com/.*minecraft.*deobf.*类提交;
    3. 新员工入职培训必须包含《游戏引擎逆向工程合规指南》(附Microsoft Legal Advisory链接)。
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 5月8日
  • 创建了问题 5月7日