[发明专利]基于软件保护装置的软件加壳方法、系统及软件保护方法有效
申请号: | 201210353459.0 | 申请日: | 2012-09-20 |
公开(公告)号: | CN102930204A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 孙吉平;韩勇 | 申请(专利权)人: | 北京深思洛克软件技术股份有限公司 |
主分类号: | G06F21/54 | 分类号: | G06F21/54 |
代理公司: | 北京金信立方知识产权代理有限公司 11225 | 代理人: | 黄威;张彬 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 软件 保护装置 方法 系统 保护 | ||
1.一种基于软件保护装置的软件加壳方法,其特征在于,包括以下步骤:
S1:在被保护软件的全部代码段中查找目标代码段;
S2:将所述目标代码段提取到所述软件保护装置中进行存储;
S3:在所述被保护软件的全部代码段中,将所述目标代码段替换为包括跳转指令的代码段或者用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段,所述跳转指令指向用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段,并对所述被保护软件进行加壳。
2.根据权利要求1所述的基于软件保护装置的软件加壳方法,其特征在于,所述步骤S1中,所述目标代码段为与单个函数对应的代码段或者与单个函数对应的代码段中的一段。
3.根据权利要求1所述的基于软件保护装置的软件加壳方法,其特征在于,所述步骤S2进一步包括:将所述目标代码段发送至所述软件保护装置,并存储在所述软件保护装置的存储区内。
4.根据权利要求1所述的基于软件保护装置的软件加壳方法,其特征在于,所述步骤S3具体为:
S301:向所述被保护软件中注入壳代码;
S302:在所述被保护软件的全部代码段中,将所述目标代码段替换为用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段;
S303:将所述被保护软件的全部代码段进行加密或压缩。
5.根据权利要求1所述的基于软件保护装置的软件加壳方法,其特征在于,所述步骤S3具体为:
S311:在所述被保护软件的全部代码段中,将所述目标代码段替换为用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段;
S312:向所述被保护软件中注入壳代码;
S313:将所述被保护软件的全部代码段进行加密或压缩。
6.根据权利要求1所述的基于软件保护装置的软件加壳方法,其特征在于,所述步骤S3具体为:
S321:向所述被保护软件中注入壳代码,所述壳代码中包含所述用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段;
S322:在所述被保护软件的全部代码段中,将所述目标代码段替换为所述包括跳转指令的代码段;
S323:将所述被保护软件的全部代码段进行加密或压缩。
7.一种基于软件保护装置的软件加壳系统,其特征在于,包括:
查找模块,其用于在被保护软件的全部代码段中查找目标代码段;
提取模块,其用于将所述目标代码段提取到所述软件保护装置中进行存储;
替换模块,其用于在所述被保护软件的全部代码段中,将所述目标代码段替换为包括跳转指令的代码段或者用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段,所述跳转指令指向用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段;
加壳模块,其用于对所述被保护软件进行加壳。
8.根据权利要求7所述的基于软件保护装置的软件加壳系统,其特征在于,所述查找模块具体用于在被保护软件的全部代码段中查找与单个函数对应的代码段作为目标代码段或者查找与单个函数对应的代码段中的一段作为目标代码段。
9.一种基于软件保护装置的软件保护方法,其特征在于,包括以下步骤:
S401:运行壳代码,解密或解压缩被保护软件的全部代码段,跳转到所述被保护软件的全部代码段的原始入口点继续执行;
S402:执行到用于从所述软件保护装置中提取目标代码段并将其还原到原始位置的代码段时访问所述软件保护装置,读取存储在所述软件保护装置中的目标代码段并将其写到所述用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段的位置,所述目标代码段为预先在所述被保护软件的全部代码段中查找到并提取到所述软件保护装置中存储的代码段;
S403:所述目标代码段的第一条指令开始执行,所述目标代码段执行完后继续向下执行。
10.一种基于软件保护装置的软件保护方法,其特征在于,包括以下步骤:
S501:运行壳代码,解密或解压缩被保护软件的全部代码段,跳转到所述被保护软件的全部代码段的原始入口点继续执行;
S502:执行到包括跳转指令的代码段时跳转到用于从所述软件保护装置中提取目标代码段并将其还原到原始位置的代码段,所述跳转指令指向所述用于从所述软件保护装置中提取所述目标代码段并将其还原到原始位置的代码段;
S503:访问所述软件保护装置,读取存储在所述软件保护装置中的目标代码段并将其写到所述包括跳转指令的代码段的位置,所述目标代码段为预先在所述被保护软件的全部代码段中查找到并提取到所述软件保护装置中存储的代码段;
S504:所述目标代码段的第一条指令开始执行,所述目标代码段执行完后继续向下执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思洛克软件技术股份有限公司,未经北京深思洛克软件技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210353459.0/1.html,转载请声明来源钻瓜专利网。