2007年4月16日星期一

Flexlm管理的license格式介绍

许多EDA软件的加密采用Flexlm(Flexible License Manager)方法,这是由Globetrotter公司发明的软件加密方法。Globetrotter公司向软件厂商出售相关开发软件,软件厂商把此加密程序集成到自己的软件中,该方法是目前最为流行的EDA软件加密方法,已被80%以上的EDA公司所采用。该方法可以锁定机器的硬盘号、网卡号、使用日期、支持加密狗等,以保护软件的知识产权。

下面简单介绍Flexlm软件管理的license的文件格式。

License文件由注释行、Server行、Daemon行以及Feature行构成,另外使用续行符号''用来表示一行的继续。


注释行
当一行的开始是'#'符号时,该行被认为是注释行。

Server行
Server行用来标识一台特定的主机,其格式如下:
SERVER host hostid [port]
SERVER是该行的关键字,标识该行为Server行,不能更改;
host表示主机的名称,在UNIX/LINUX系统中,可以用命令“hostname”或“uname -n”获得;在Windows NT/2000/XP系统中,可以通过命令“ipconfig /all”获得;
hostid表示主机的ID号,使用Flexlm License管理工具的lmhostid命令获得;
port表示使用的TCP/IP的端口号,在UNIX/LINUX系统下,该数值需要大于1024,因为小于1024的端口号已被操作系统使用;如果没有指定port,则使用27000~27009之间的一个有效端口号。一般使用27000端口号。

Daemon(或Vendor)行
Daemon行用来标识不同的软件提供商,该行的格式如下:
DAEMON daemon_name [daemon_path]
DAEMON是该行的关键字,标识该行为Daemon行,不能更改;
daemon_name是实际运行的License管理工具的名称,如lmgrd等;
daemon_path是该工具的存放路径。

Feature行
Feature行用来对软件特定的功能进行限制,常见格式如下:
FEATURE feature vendor feat_version exp_date num_lic SIGN=sign [optional_attributes]
FEATURE是该行的关键字,表示该行为Feature行,不能更改;
feature是软件提供的特定功能的名称;
vendor表示软件提供商的名字;
feat_version表示该feature的版本号;
exp_date表示该license的过期日期,格式为dd-mm-yy,例如31-04-2007。另外,如果该字段为"permanent"或yy位为0(或者00,000,0000),那么该license永不过期;
num_lic表示该许可的终端用户个数;
SIGN=sign是用于验证该feature的签名,是根据以上条件和Flexlm加密算法计算出来的密码,一般和机器的硬件设备相关,譬如硬盘号,网卡号等;
[optional_attributes]有众多选项,详细的可参考Flexlm的End-User-Manual。

续行符号''
一行太长需要续行的时候,在行末尾用''符号表示续行。

没有评论: