[发明专利]一种Linux操作系统的代码保护方法及其模块有效
申请号: | 201310021705.7 | 申请日: | 2013-01-21 |
公开(公告)号: | CN103136458A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 程超 | 申请(专利权)人: | 中标软件有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F17/30 |
代理公司: | 北京聿宏知识产权代理有限公司 11372 | 代理人: | 吴大建;钟日红 |
地址: | 200030 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 操作系统 代码 保护 方法 及其 模块 | ||
1.一种Linux操作系统的代码保护方法,其特征在于,包括:
生成步骤,将代码文件生成Linux操作系统的动态库文件;
抽取步骤,从所述动态库文件中抽取出所要保护的代码;
处理步骤,将抽取的代码存放在第一文件中。
2.根据权利要求1所述的代码保护方法,其特征在于,在所述处理步骤中,
将抽取的代码按照设定格式存放在所述第一文件中,其中,所述设定格式包括头部结构和函数结构,所述头部结构用来表征关于抽取的代码的特征,所述函数结构用来表征关于抽取的代码中各个函数的特征。
3.根据权利要求2所述的代码保护方法,其特征在于,所述处理步骤还包括,
将抽取代码后的文件记为第二文件,将所述第二文件的权限设置为可读权限、可写权限和可执行权限。
4.根据权利要求3所述的代码保护方法,其特征在于,在要实现所述代码文件的功能时,还包括,
合并步骤,在内存中将所述第一文件和所述第二文件进行合并,进一步包括以下步骤,
利用函数dlopen预加载所述第二文件;
根据所述设定格式,从所述第一文件中获取所述抽取的代码中各个函数的函数名和对应的代码;
利用函数dlsym得到所述各个函数在当前预加载所述第二文件的进程空间中的内存地址;
利用函数memcpy将与所述各个函数对应的代码拷贝到相应的内存地址中,实现所述第一文件和所述第二文件的合并。
5.根据权利要求3所述的代码保护方法,其特征在于,
在所述第二文件中所抽取代码的原位置上,填充不与所抽取代码的值相同的数值。
6.根据权利要求4所述的代码保护方法,其特征在于,
在所述处理步骤中,进一步包括对所述抽取的代码和/或所述第一文件进行加密;
在要实现所述代码文件的功能时,还包括对进行加密的所述抽取的代码和/或所述第一文件进行解密。
7.根据权利要求1所述的代码保护方法,其特征在于,在所述抽取步骤中,进一步包括,
配置第三文件,该文件中包含要抽取的函数名;
根据所述第三文件中的函数名从所述动态库文件中抽取出所要保护的代码。
8.一种Linux操作系统的代码保护模块,其特征在于,包括:
生成单元,其用于将代码文件生成Linux操作系统的动态库文件;
抽取单元,其用于从所述动态库文件中抽取出所要保护的代码;
处理单元,其用于将抽取的代码存放在第一文件中。
9.根据权利要求8所述的代码保护模块,其特征在于,
所述处理单元进一步用于将抽取的代码按照设定格式存放在所述第一文件中,其中,所述设定格式包括头部结构和函数结构,所述头部结构用来表征关于抽取的代码的特征,所述函数结构用来表征关于抽取的代码中各个函数的特征。
10.根据权利要求9所述的代码保护模块,其特征在于,所述处理单元进一步用于,
将抽取代码后的文件记为第二文件,将所述第二文件的权限设置为可读权限、可写权限和可执行权限。
11.根据权利要求10所述的代码保护模块,其特征在于,还包括,
合并单元,在要实现所述代码文件的功能时,其在内存中将所述第一文件和所述第二文件进行合并,进一步用于,
利用函数dlopen预加载所述第二文件;
根据所述设定格式,从第一文件中获取所述抽取的代码中各个函数的函数名和对应的代码;
利用函数dlsym得到所述各个函数在当前预加载所述第二文件的进程空间中的内存地址;
利用函数memcpy将与所述各个函数对应的代码拷贝到相应的内存地址中,实现所述第一文件和所述第二文件的合并。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中标软件有限公司,未经中标软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310021705.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:多关节旋转接头
- 下一篇:电磁熔承插管件及钢塑复合管电磁熔承插结构