Unity IL2CPP 类通用

请您注意

此文档中的内容只适用于 Unity IL2CPP 类游戏,不是所有的游戏都可以跟着这个教程来安装的。

请打开客户端,找到“获取支持插件”对话框右下角的查看安装方法按钮,如果是它带你来的这儿,那你就可以跟着做。

感谢你的注意
反病毒软件误报声明

近期开发中观测到火绒会误报。让 GPT 分析了,结果在下面,被火绒或其他杀毒软件报毒的话,愿意听解释的可以点开看下。

我这边只能保证我自己的代码干净,保证不了 melon loader 代码干净。但我个人是信任 melon loader 的。

这是virus-total 扫描结果。

MelonLoader 是什么,为什么可以信任它? MelonLoader 是一个面向 Unity 游戏的开源第三方 Mod 加载器,用来让游戏加载社区制作的扩展程序。对于 Cairn 这样的 IL2CPP 游戏,它还会在首次启动时分析游戏程序集并生成互操作代理 DLL,使普通 .NET Mod 能够调用游戏代码。DGLab Bridge 使用它加载 Cairn 适配插件。

MelonLoader 不是 Cairn 开发商或 Steam 官方组件,因此这里不存在“官方背书”。信任依据主要是:项目源码和构建流程公开、开发历史可追溯、发行版本可从官方仓库获取,并且本次文件生成行为能够与其公开源码及本地运行日志相互验证。

同时,开源和社区使用量并不等于绝对安全。MelonLoader 需要注入游戏进程、修改游戏启动流程并生成可执行程序集,这些能力本身具有较高权限,也容易触发安全软件的启发式检测。请只从官方仓库下载安装包,核对版本和发布来源,不要使用网盘、群文件或第三方整合包。如果你不能接受第三方 Mod 加载器带来的风险,那么你也就无法使用所有使用 Unity IL2Cpp 构建的游戏的支持文件。

GPT 分析结果 GPT-5.6 Sol:现有证据明显倾向“MelonLoader 生成的互操作程序集触发火绒启发式误报”,但在火绒完成样本复核前,不应向用户承诺“100% 安全”。

关键判断:

  • 被报毒的不是我们发布的 DglabBridgeUnityIL2CPP.dll。

  • 被删的是 MelonLoader 自动生成的: MelonLoader\Dependencies\Il2CppAssemblyGenerator\Il2CppInterop\Il2CppAssemblies\Il2CppSystem.dll

  • 本机 C:/Program Files (x86)/Steam/steamapps/common/Cairn/MelonLoader/Latest.log 明确记录:

    • 22:44:56 开始生成 Interop Assemblies
    • 22:45:20.649 移动 Il2CppSystem.dll
    • 随后因 UnauthorizedAccessException 启动失败

这和火绒当场拦截、删除文件的行为完全吻合。

Il2CppInterop 官方文档也说明:它会根据游戏的 GameAssembly.dll 和 Cpp2IL 输出,在用户机器上生成一组 .NET 代理程序集,让托管 Mod 能调用 IL2CPP 游戏代码。Il2CppInterop 官方说明、MelonLoader 生成器源码

“操作进程是 Cairn.exe”也是正常现象:MelonLoader 加载在游戏进程中,程序集生成器因此以 Cairn.exe 的进程身份写入这些文件,并不是 Cairn 游戏本身突然开始下载或释放木马。MelonLoader 启动生成器源码

为什么容易误报:

  • 文件是运行时刚生成的、没有 Authenticode 签名的 MSIL 程序集。
  • 内含大量原生指针、运行时调用、反射、代理和 IL2CPP 转发代码。
  • 文件知名度低,而且不同游戏/版本可能生成不同内容。
  • TrojanSpy/MSIL.Stealer.ez 是检测分类名,不等于已经证明该文件存在窃密行为。
  • 火绒自己也说明高启发式检测可能产生误报。火绒说明

不过,检测名称本身不能作为误报证明;我没有找到病毒 ID 4AE99C438716BDE8 的公开技术分析。

建议的处理顺序:

  1. 暂时不要要求普通用户关闭杀毒软件,也不要让用户信任整个 Cairn 或 Steam 目录。
  2. 从火绒隔离区提取样本,在隔离环境中保留 SHA-256、MelonLoader 日志、火绒版本和病毒库版本。
  3. 通过火绒客户端的“病毒上报”提交误报复核,附上生成过程和官方源码链接。火绒官方手册确认客户端提供病毒样本上报入口。火绒操作手册 (韵律晚八点Arcaea:第三点是废话,melon loader 生成的 dll 文件是根据游戏动态生成的,给一个拉白名单解决不了所有)
  4. 在确认不涉及游戏文件许可问题后,可进行多引擎扫描;优先搜索 SHA-256,再决定是否上传样本。
  5. 等火绒复核或病毒库更新后,再让用户更新病毒库并重新生成。
  6. 只有需要紧急开发测试时,才在隔离测试环境中对这个精确文件或精确生成目录设置例外;不要向普通用户推荐全局关闭防护。

可以直接发给用户的版本:

关于火绒报毒的说明

本次被检测的文件不是 DGLab Bridge 发布的 Mod 文件,而是 MelonLoader 为 IL2CPP 游戏自动生成的 Il2CppSystem.dll 互操作代理程序集。该文件由 MelonLoader 在游戏首次启动时,根据 Cairn 的本地游戏程序集即时生成,因此安全软件会显示写入进程为 Cairn.exe。

这类程序集包含大量运行时代理、原生指针和反射代码,且没有数字签名、文件知名度较低,可能触发安全软件的启发式检测。目前日志中的文件生成时间、路径和 MelonLoader 官方生成流程一致,现有证据倾向误报,但在安全厂商完成样本复核前,我们不会宣称其绝对安全。

我们已经/正在向火绒提交样本复核。现阶段不建议关闭杀毒软件或信任整个游戏目录。如果你不希望承担任何风险,请先不要恢复该文件,等待火绒病毒库更新或复核结论。该文件被删除后,MelonLoader 无法完成初始化,相关 Mod 功能也暂时无法使用。

对外最好再公开以下信息:

  • MelonLoader、Cpp2IL、Il2CppInterop 的准确版本。
  • 官方下载地址。
  • 我们自己发布的 Mod DLL 的 SHA-256。
  • 火绒样本复核结果或工单编号。
  • 明确区分“我们发布的 DLL”和“MelonLoader在用户机器生成的 DLL”。

不建议写“请放心使用,纯属误报”或“直接把整个游戏目录加入白名单”。这两种表述都超出了现有证据。

截图

anti-virus-tip.png

安装流程

  • 点击你需要安装插件的游戏。点击左下角的“获取该游戏的支持插件”。 get-plugin.png
  • 前往 MelonLoader 官网,点这个下载 download-melonloader.png
  • 找到你想 patch 的游戏的 exe 文件,点 install install-melonloader.png
  • 将插件保存在桌面。 save-plugin-to-desktop.png
  • 打开游戏所在的文件夹。
    • 这里只演示 Steam 如何找到游戏文件夹。 find-game-dir.png
  • 将插件 dll 放入游戏文件夹中的 "Mods" 文件夹。 install-mod.png

验证安装结果

  • 出现这个黑乎乎的窗口是正常的,这不是报错。打开游戏先出这个窗口是正常的,这证明你 melonLoader 安装成功了。 about-console.png
  • 该窗口中出现"UDP 服务器已启动"证明你安装好了。 log-show-in-console.png