[发明专利]一种Linux操作系统的代码保护方法及其模块有效
申请号: | 201310021705.7 | 申请日: | 2013-01-21 |
公开(公告)号: | CN103136458A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 程超 | 申请(专利权)人: | 中标软件有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F17/30 |
代理公司: | 北京聿宏知识产权代理有限公司 11372 | 代理人: | 吴大建;钟日红 |
地址: | 200030 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 操作系统 代码 保护 方法 及其 模块 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种Linux操作系统的代码保护方法及其模块。
背景技术
由于Linux系统具有开源的特性、软件授权费用低和应用开发资源丰富等优点,已经得到了广泛的应用,并且在民用和办公以及开发领域具有越来越多的用户。
Linux系统具有安全可靠、内核可定制、源代码开放等这些优点,但是就是因为其具有开放性,有些关键性的代码,如核心加密算法不能得到保护。
例如,Linux动态库的标准格式是ELF,它可以被一般的反汇编工具,如objdump工具反汇编。下面例子,展示了Linux动态库以及反汇编:
(1)c代码文件test.c
(2)生成动态库libtest.so:
cc-c./test.c
cc-fPIC-shared-o./libtest.so./test.o
(3)利用objdump工具将libtest.so反汇编出来的代码:
从反汇编出来的代码,比较容易的看出这个函数要实现的功能,使得动态库中的关键代码无法受到保护。
因此,亟需一种代码保护方法来保护动态库中的关键代码,使得动态库无法通过反汇编得到其汇编代码。
发明内容
本发明所要解决的技术问题之一是需要提供一种防止反汇编得到代码的Linux操作系统的代码保护方法及其模块。
为了解决上述技术问题,本发明提供了一种Linux操作系统的代码保护方法,包括:生成步骤,将代码文件生成Linux操作系统的动态库文件;抽取步骤,从所述动态库文件中抽取出所要保护的代码;处理步骤,将抽取的代码存放在第一文件中。
进一步,在所述处理步骤中,将抽取的代码按照设定格式存放在第一文件中,其中,所述设定格式包括头部结构和函数结构,所述头部结构用来表征关于抽取的代码的特征,所述函数结构用来表征关于抽取的代码中各个函数的特征。
进一步,所述处理步骤还包括,将抽取代码后的文件记为第二文件,将所述第二文件的权限设置为可读权限、可写权限和可执行权限。
进一步,在要实现所述代码文件的功能时,还包括合并步骤,在内存中将第一文件和第二文件进行合并,进一步包括以下步骤,利用函数dlopen预加载所述第二文件;根据所述设定格式,从第一文件中获取所述抽取的代码中各个函数的函数名和对应的代码;利用函数dlsym得到所述各个函数在当前预加载所述第二文件的进程空间中的内存地址;利用函数memcpy将与所述各个函数对应的代码拷贝到相应的内存地址中,实现所述第一文件和所述第二文件的合并。
进一步,在所述第二文件中所抽取代码的原位置上,填充不与所抽取代码的值相同的数值。
进一步,在所述处理步骤中,进一步包括对所述抽取的代码和/或所述第一文件进行加密;在要实现所述代码文件的功能时,还包括对进行加密的所述抽取的代码和/或所述第一文件进行解密。
进一步,在所述抽取步骤中,进一步包括,配置第三文件,该文件中包含要抽取的函数名;根据所述第三文件中的函数名从所述动态库文件中抽取出所要保护的代码。
根据本发明的另一方面,还提供了一种Linux操作系统的代码保护模块,该模块包括:生成单元,其用于将代码文件生成Linux操作系统的动态库文件;抽取单元,其用于从所述动态库文件中抽取出所要保护的代码;处理单元,其用于将抽取的代码存放在第一文件中。
进一步,所述处理单元进一步用于将抽取的代码按照设定格式存放在第一文件中,其中,所述设定格式包括头部结构和函数结构,所述头部结构用来表征关于抽取的代码的特征,所述函数结构用来表征关于抽取的代码中各个函数的特征。
进一步,所述处理单元进一步用于,将抽取代码后的文件记为第二文件,将所述第二文件的权限设置为可读权限、可写权限和可执行权限。
进一步,还包括,合并单元,在要实现所述代码文件的功能时,其在内存中将第一文件和第二文件进行合并,进一步用于,利用函数dlopen预加载所述第二文件;根据所述设定格式,从第一文件中获取所述抽取的代码中各个函数的函数名和对应的代码;利用函数dlsym得到所述各个函数在当前预加载所述第二文件的进程空间中的内存地址;利用函数memcpy将与所述各个函数对应的代码拷贝到相应的内存地址中,实现所述第一文件和所述第二文件的合并。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中标软件有限公司,未经中标软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310021705.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多关节旋转接头
- 下一篇:电磁熔承插管件及钢塑复合管电磁熔承插结构