NautilusDRM 线路版权保护程序

OpenBVE界最为成熟有效的侵权防范方案之一


编程: Nemo Zhang (zbx1425)
转载请注明作者及本页链接

本程序能干什么?

本程序可以加密您线路的图片和模型,使其无法被轻易修改。这也使您加密后的线路无法被私自转换到Hmmsim。同时,在线路加载时可以选择弹窗显示您的版权信息,作为一个私传、盗转者无法抹去的数字水印。甚至可以通过每日改变的动态密码的方式,让下载到线路的玩家们必须造访您的官网获取密码才可游玩。这可有效避免您的版权在侵权私传的过程中遭到抹杀。
本程序只适配OpenBVE。遗憾的是, 由于Hmmsim是付费软件, 且程序代码被直接编译为机器码, 极难修改, 无法提供Hmmsim的版权保护手段。

演示线路

本线路用于演示本软件功能,也用于演示加密程序正确配置及使用方法,可供您试新。
本线路原版为 Michelle Bocequemont大佬制作的OpenBVE官网动画物件示范线路。Michelle已放弃版权并允许自由改编此线路。如您对本线路中动画物件效果有兴趣,希望学习,可到此处下载未加密原版。
本线路所用列车为日本PM大佬制作的113-1000atccab。为配套本线路需求做了些修改。原版可在PM's BVE Web下载。Contacting Mr.PM for authorizing has been attempted but no response was received. Considering the last edit of Mr.PM's website was over 12 years ago, further attempt was given up. If this distribution is considered inappropriate please contact me at any time to have it removed as soon as possible. Email: zbx1425@outlook.com
本线路安装了Magicant大佬的bve-autopilot自动驾驶插件。关闭车门,释放刹车后按[0]键即可观赏表演。关于此插件详情可见此处
由于其中内容(主要是列车)制作年代略显久远, 很多代码写法已不再是最佳实践, 还请不要当作教材使用。

下载游玩

密文:

插件程序 v1.2.4

核心模块

将此列车Ats.dll插件用于您线路配套的列车即可

备用下载
DetailManager

用于同时加载本插件与其它Ats插件

前往下载

加密工具 v1.0.3

资源加密工具

加密您的线路档, 使得改贴图与转换等侵权行为困难重重

备用下载
插件配置生成工具

将您的版权信息以加密字符形式嵌入路线中, 以防盗图

在线使用

使用说明

  1. 下载资源加密工具并放置到您方便的位置。
    注: 本工具需要.Net Framework 4.6.1。大多Win10等较新系统已自带,如果提示需要安装, 请自行搜索安装方式。
  2. 运行加密工具, 选择生成新密钥。
    请您牢记: 密钥与线路一一对应配套。请您注意相同线路使用相同密钥,不同线路使用不同密钥。如您混用, 您将遇各种问题!
    将密钥文件保存到您方便的位置并妥善保管。
  3. 将线路文件复制一份!不要直接在您的开发源文件上动手!加密工具不会创建备份, 一经加密无法轻易还原!
  4. 使用插件配置生成工具生成配置文本。填入您想要的加密形式 (推荐您尽量使用动态密码), 以及是否每次弹窗等设定。
    因为配置文本是根据密钥文件计算的,它也要和线路一一配套。
    可用写有您版权等信息的图片作为背景图, 分辨率为640x360。可将您官网链接输入, 点击图片即跳转 (可在图上准备下划线文字以使其看起来像链接)
    注: 由于下方要显示密码输入框等, 请尽量将关键文字放在图片上半部分。
  5. 将生成的文字点击按钮复制后, 放置到一个csv模型中(由于该模型加载时配置文件尚未读入, 无法加密。)
    个人习惯使用一个空模型。文件开头不要有空行, 分号前不要有空格。
    然后编辑您的CSV线路文件, 设法使刚刚的这个模型成为线路中第一个加载的模型。例如:
    Route.Comment Example
    ;...... 请注意不要让任何背景材质或列车在其之前加载, 否则如果贴图已加密一定会失败
    With Structure
    .Rail(0) null.csv ;<<放置有配置文字的模型, 可以用任何类型任何编号, 但一定要第一个加载
    .Rail(1) ......
    .FreeObj(1) ......
    Train.Folder BJS-DK3
    ......
    用于配置的此csv模型文件并非每次加密都要重新生成。若不需修改就可保留不动。
  6. 再次打开加密工具, 这次使用刚刚第二步生成的加密因数。然后选择您所有线路模型与贴图文件(Object内)所在的文件夹。
    将加密其中所有bmp, jpg, gif, png, tif, csv, b3d格式文件。
    注: 请勿选择线路CSV文件! 加密程序不支持加密线路, 且会将其按照模型处理导致无法加载!
    注: 密钥文件与线路一一对应, 此后加密相同线路(即使发布更新)时请使用相同的因数与GUID等, 不同线路则请另外生成。
    注: 由于加密参数与线路一一对应, 如您也要加密列车模型, 就只能让它和单一线路配套使用。不过对于国内地铁这应问题不大。
    注: 加密过程不可撤销!请在输入 Y 开始加密前, 再次确认程序列出的文件是否都是您想要加密的!
  7. 打开您线路配套的列车文件夹, 将上述自动配置插件 NautilusDRMPlugin.dll 放入其中,然后修改或创建ats.NautilusDRMPlugin.dll激活。如您不知如何写ats.cfg,像这样:
    NautilusDRMPlugin.dll
    直接一行字把文件名写进去即可。
    注: 本Ats插件只负责自动安装功能, 不会影响您列车的行为, 也不会对本插件进行任何配置, 即不会使您列车模型获得加密。如需加密列车模型,请将加密工具应用于您的列车文件夹。同时,由于加密配置随线路加载,一旦加密列车模型就代表该列车只能用于唯一线路。此外,列车封面图(train.png, train.bmp类)不能加密(因为此图在菜单中显示,此时配置尚未读入,加密后将无法解码)。
    如果您的列车原本有着ats插件, 请您使用上述DetailManager, 该插件将允许OpenBVE同时加载多个列车ats插件。如您无需,您到此已完成配置全过程。
    DetailManager的使用方法在下载页面有详细描述。
  8. 启动OpenBVE。现在当您打开线路时, 本程序应当会自动载入并按照您设定的配置工作。

Javascript 动态密码使用说明

  1. 请注意: 此说明假设您对HTML及Javascript有些基本了解。如您难以理解此说明欢迎您到 菜鸟教程网 补课。
    另注意: 本动态密码生成器纯属Javascript客户端运行, 不需php, asp等任何服务端脚本环境。
    另注意: 如何架设网站服务器等问题远超本说明讨论范围, 敬请自行查找。
  2. 本脚本托管于NPM, 万分感谢NPM与JSDelivr。
    如果您不想使用, 也可下载文件并放置到您的服务器。(不推荐, 仅在无法使用jsdelivr时使用)
  3. 在网页<head>区域内引入本脚本, 或(如需)用JQuery等异步加载。例如:
    <script src="https://cdn.jsdelivr.net/npm/nautilus-drm-kit@1.2.2/nautilusDRM.js"></script>
  4. 本脚本提供函数nautilusCode。打开密钥文件后您可看到调用此函数所需参数。该函数直接返回日期暗号, 您可使用document.write或其他方式显示。
    例如, 将以下语句中参数替换后, 放置在您想要显示的位置:
    <script>document.write(nautilusCode(...一堆数字...));</script>

致谢

十分感谢 Christopher Lees (leezer3) 大佬在本程序与OpenBVE互操作上的热心协助