软件中心收费软件License保护编程指南1.1

软件中心收费软件License保护编程指南1.1


2023年12月30日发(作者:a7r4)

珠海魅族科技有限公司软件中心收费软件License保护编程指南

珠海魅族科技有限公司1.总体说明1.1阅读用户角色开发者第三方收费应用开发者描述1.2修改历史时间2010-5-13增加试用软件的内容。修改内容第2页共6页

珠海魅族科技有限公司2.软件中心License保护2.1License原理软件中心License保护,采用在程序中添加检查代码的方法来保护软件版权。具体流程如下:cense检查代码。1、开发者在程序中添加Li2、上传软件到软件中心,软件中心提取可执行软件的特征码用户下载时,根据软件的特征码,以及用户机器SN等信息计算License传给用户机器,用户以CAB包中可执行文件部分特征的MD5作为文件名保存License文件在本地的"/Disk/ApplicationData/MyStore/Data/[MD5].licensecense文件,并验证License文件的合法性以及License3、系统启动受保护程序时,读取Li授权期间的正确性。2.2实现方法我们提供一个MyStoreLib的静态库,头文件:MyStoreLib.h静态库文件:头文件里面定义了一个struct,表示License验证后的结果以及License包含的信息:typedefstructstMYSTORE_VERIFY_CONTEXT{DWORDVer;DWORDLicenseValid;DWORDExpired;DWORDExpireDate;BYTEReserved[19];//<防盗版版本号//<证书是否合法(非法,:合法)//<是否过期(:未过期,:过期)//<过期日期(如年月日:20100128)//<保留字段}MYSTORE_VERIFY_CONTEXT;Ver防盗版方案版本号,可以忽略。LicenseValid,表示License是否是发放给当前用户、当前软件的。Expired,如果是试用期软件,是否过期<软件中心目前不支持试用期,一律为正式软件>。ExpireDate,过期时间。Reserved一些保留内容,目前仅用了前两个bit。第一个bit置1表示收费,否则为免费;第二个bit,置1表示试用期,否则为正式License。License验证的函数如下:DWORDMyStoreVerify(constwchar_t*pszFileName,__outMYSTORE_VERIFY_CONTEXT*pmyStoreVerifyContext);pszFileName为可执行文件的文件名称,可使用GetModuleFileName函数获取,pmyStoreVerifyContext为验证结果保存的结构指针。详细使用方法如下例:第3页共6页

珠海魅族科技有限公司#include"MyStoreLib.h"#pragmacomment(lib,"")#pragmacomment(lib,"")#pragmacomment(lib,"")wchar_tpszFileName[MAX_PATH]={0};GetModuleFileName(0,pszFileName,MAX_PATH);MYSTORE_VERIFY_CONTEXTmystore={0};DWORDdwRet=MyStoreVerify(pszFileName,&mystore);switch(dwRet){case0:{//验证结果为:合法//检验是否超过试用期//决定让应用程序继续运行RETAILMSG(1,(L"验证结果为:合法,LicenseValid:%u,Expired:%u,试用期终止日期:%un",eValid,d,Date));if(d){//超过试用期//认为是试用软件做限制功能...}else{if(ed[0]&0x40==0x40){//License类别为免费免费License,做功能限制。}else{//未超过试用期//认为是正式License。}}}break;case1:{//验证结果为:打开pszFileName文件失败,//认为是试用软件做限制功能...RETAILMSG(1,(L"验证结果为:打开pszFileName文件失败n"));}break;case2:{第4页共6页//验证此文件是否合法//当前进程EXE的文件名

珠海魅族科技有限公司//验证结果为:打开License文件失败//认为是试用软件做限制功能...RETAILMSG(1,(L"验证结果为:打开License文件失败n"));}break;case3:{//验证结果为:验证失败//认为是试用软件做限制功能...RETAILMSG(1,(L"验证结果为:验证失败n"));}break;case4:{//验证结果为:序列号获取失败//...退出应用程序RETAILMSG(1,(L"验证结果为:序列号获取失败n"));}break;}2.3收费软件提供试用之前要求收费软件必须提供Demo,供用户试用。现在提供新的试用策略,开发者不需要提交两个不同的软件,在软件验证License时,如果发现License文件不存在,或者验证失败,或者试用超时,或者License为试用版License,那么进行功能限制。如果您开发的是收费软件,那么如果检查License失败,则仍然需要能启动程序,但是程序是一个有功能限制的试用版本。检查License失败的情况包括:1、License文件不存在2、License文件非法3、License文件合法,但是是试用期版本4、License文件合法,但是已过试用期险另外,提供试用版的收费软件,请在软件中心把软件的最新上架版本的允许使用选项打开。目前下载试用版软件不提供试用License,所以验证试用软件时,一般结果是找不到License。2.4插件License检查如果开发的程序是桌面插件,那么代码里:DWORDdwRet=MyStoreVerify(pszFileName,&mystore);这一步的pszFileName文件名请指向inf文件里面注册表项定义的文件,如下的文件:第5页共6页

珠海魅族科技有限公司"SOFTWAREMeizuMiniOneShellMainmCalculator","ExecFileName",0x00000000,"%InstallDir%"2.5注意事项1、对License的检查必须在桌面图标指向的可执行文件里面实现。2、可执行文件不要太大,由于License的检查,可执行文件大小会影响程序的启动速度。3、如果对一处License检查不放心,可以分多处调用。3.参考资料无。第6页共6页


发布者:admin,转转请注明出处:http://www.yc00.com/num/1703945282a1326912.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信