[发明专利]一种软件保护方法和装置有效
申请号: | 201710611787.9 | 申请日: | 2017-07-25 |
公开(公告)号: | CN107341372B | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 孙吉平;李伟伟 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 黄威;邓玉婷 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 保护 方法 装置 | ||
1.一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:
在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;
为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;
对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
2.如权利要求1所述的方法,其中,所述操作数包括在所述待保护代码段内部产生并由外部引用的至少一个第一操作数,所述方法还包括:
将所述中间代码中引用所述第一操作数的操作指令修改为从所述专用存储空间读取所述第一操作数。
3.如权利要求1所述的方法,其中,所述操作数包括由所述待保护代码段从外部引用的至少一个第二操作数,所述方法还包括:
在所述待保护代码段内增加将所述至少一个操作数从原存储位置写入所述专用存储空间的指令。
4.如权利要求1所述的方法,其中,为所述至少一个操作数分配专用存储空间包括:在所述待保护代码段内增加为所述至少一个操作数分配所述专用存储空间的指令。
5.如权利要求1至4中任一项所述的方法,其中,所述加密处理包括指令混淆、指令虚拟化、数值随机化、数值加密中的一种或多种。
6.一种软件保护装置,包括处理器,其中,所述处理器配置为在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:
在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;
为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;
对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
7.如权利要求6所述的装置,其中,所述操作数包括在所述待保护代码段内部产生并由外部引用的至少一个第一操作数,所述处理器进一步配置为:
将所述中间代码中引用所述第一操作数的操作指令修改为从所述专用存储空间读取所述第一操作数。
8.如权利要求6所述的装置,其中,所述操作数包括由所述待保护代码段从外部引用的至少一个第二操作数,所述处理器进一步配置为:
在所述待保护代码段内增加将所述至少一个操作数从原存储位置写入所述专用存储空间的指令。
9.如权利要求6所述的装置,其中,为所述至少一个操作数分配专用存储空间包括:在所述待保护代码段内增加为所述至少一个操作数分配所述专用存储空间的指令。
10.如权利要求6-9中任一项所述的装置,其中,所述加密处理包括指令混淆、指令虚拟化、数值随机化、数值加密中的一种或多种。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710611787.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种适用于web组态的脚本控制方法
- 下一篇:一种不透明谓词的插入方法及装置