【技术实现步骤摘要】
一种基于加密和代码混淆的License控制方法及系统
[0001]本专利技术属于软件授权控制
,尤其涉及一种基于加密和代码混淆的License控制方法及系统。
技术介绍
[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]随着计算机科技发展,软件和信息技术服务业运行态势良好,行业各细分市场发展形势呈现出全部上涨的局面,即软件产品、信息技术服务、信息安全产品和嵌入式系统软件收入和效益保持较快增长,吸纳就业人数稳步增加;产业向高质量方向发展步伐加快,结构持续调整优化,新的增长点不断涌现。
[0004]软件作为软件公司的重要资产,是公司的技术核心竞争力;为了保护软件资产,同时也为了服务各行各业、不同规模的客户群体,软件公司引入License控制系统实现这一目的。
[0005]如图2所示,现在常用的License控制系统多使用RSA签名方式保护软件系统不被未授权用户使用,但这一方法存在诸多弱点,如RSA密钥长度不够导致加密强度较低,License加载逻辑 ...
【技术保护点】
【技术特征摘要】
1.一种基于加密和代码混淆的License控制方法,其特征在于,包括:获取授权信息,并使用私钥加密,得到第一密文;提取软件逻辑运行类,并在添加花指令、进行名称混淆和字符串混淆后,使用私钥加密,得到第二密文;随机生成一个数字,将第一密文和第二密文按照随机生成的数字的二进制的排列进行字节打乱混合,得到字节数组,将数字和第一密文的若干字节插入字节数组开头,得到License文件;将公钥序列化为第一字符串,将第一字符串拆分为若干个子串,并修改软件逻辑,使不同方法根据入口参数不同,返回不同子串;将类加载器中的License加载代码转化为第二字符串,写入ASM字节码编辑逻辑中,并对第二字符串做字符串混淆;基于混淆后的类加载器和修改后的软件,生成软件包,将软件包和License文件一起发送。2.如权利要求1所述的一种基于加密和代码混淆的License控制方法,其特征在于,所述花指令包括空循环、不可达条件分支和return语句执行运算。3.如权利要求1所述的一种基于加密和代码混淆的License控制方法,其特征在于,所述名称混淆的具体方法为:将软件逻辑运行类中的私有方法名和变量名替换为无语义的字母或字符串。4.如权利要求1所述的一种基于加密和代码混淆的License控制方法,其特征在于,所述字符串混淆的具体方法为:将软件逻辑运行类中的字符串与随机生成字符串进行异或运算,将运算结果保存为字符数组和字节数组。5.如权利要求1所述的一种基于加密和代码混淆的License控制方法,其特征在于,所述类加载器可以延迟从指定的密文数据中加载类。6.如权利要求1所述的一种基于加密和代码混淆的License控制方法,其特征在于,所述软件包和License文件在客户端被加载,具体步骤为:依次调用若干方法,获取到一组子串,组装为第一字符串,并反序列化为公钥;查找License文件,如果不存在则停止启动;拆分Licens...
【专利技术属性】
技术研发人员:杨义,宫传华,陈通,马子卿,朱鹏,戴洁清,
申请(专利权)人:山东亿云信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。