脚本文件加密
在服务端根目录创建 encode.bat 文件内容如下,保存后直接执行,等待map-server.exe运行完成后脚本加密完成。
@ECHO OFF
map-server.exe /generate-encode -input npc/test/OnInterInit.txt -output npc/test/enc.txt
ECHO.
pause
上面的代码执行完成后将文件 npc/test/OnInterInit.txt 加密后输出到 npc/test/enc.txt
参数:
- -input 输入目标,需要加密的脚本文件(txt)、配置文件(conf)、文件夹
- -output 输出目标,输入目标为文件时输出目标也是文件,其他情况填写文件夹
- -onlyenc 只加密带有 script_enc 标签的 NPC
- -uid 脚本绑定UID,绑定UID与网络授权有关
uid:
网络授权相关,通过 UID 才能对脚本进行机器码绑定、邮箱绑定和下载支付和首次支付等,带有UID的文件如果没有通过网络授权则脚本无法使用
onlyenc:
只加密带有 script_enc 标签的 NPC,使用时脚本函数中的 script 关键字改为 script_enc 加密时脚本只对带有 script_enc 的脚本
例子:
map-server.exe /generate-encode -input npc/test/source_test.txt -output npc/test/enc.txt -onlyenc
文件 npc/test/source_test.txt 内容为:
prontera,154,119,5 script_enc 加密脚本 56,{
mes "[加密脚本]";
mes "脚本加密后, 我的内容是被加密内容.";
close;
}
prontera,160,119,5 script 未加密脚本 56,{
mes "[未加密脚本]";
mes "脚本加密后, 我的内容是被未被加密的.";
close;
}
授权功能使用
在 个人中心 内的 交易平台 标签使用绑定UID上传用相同UID加密的脚本,可配置绑定机器码、绑定邮箱、下载付费、按月付费等功能,上传后其他人可在 资源脚本下载 中查看文件列表,用户购买的点券会按照85%的比例转到自己的个人中心中。
加密脚本的不可破恢复性
加密后的文件是无法恢复成加密前的明文文本的,包括写加密程序的作者也无法将其恢复。其加密原理是将脚本读入到
服务端后的操作码(opcode)保存下来,这种操作码并不是逻辑语言,如果想恢复明文文件,需要的过程并不是破解或者是解密 ,而是需要逆向,逆向是从操作码中推断脚本复写的过程。举个例子,我们通过源码编译可以将服务端的几十万行源码编译成可执行文件(exe文件),其编译过程就是将源码转换为操作码的过程,将加密的脚本还原的过程相当于给你一个exe文件让你恢复他的源码,这是一个不可能完成的操作。此操作只能通过逆向,而逆向成本巨大促使加密后的脚本变成了不可被还原成脚本明文的主要原因。