[发明专利]一种软件保护方法和装置有效
申请号: | 201710611787.9 | 申请日: | 2017-07-25 |
公开(公告)号: | CN107341372B | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 孙吉平;李伟伟 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 黄威;邓玉婷 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 保护 方法 装置 | ||
本发明公开了一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为对专用存储空间进行存取的指令;对包括经修改的至少一个操作指令的待保护代码段进行加密处理。本发明同时提供了一种软件保护装置。通过本发明的软件保护方法和装置,实现了跨平台的软件保护。
技术领域
本发明涉及计算机软件领域,特别涉及一种软件保护方法和装置。
背景技术
目前,对软件进行加密保护的技术已经广泛使用,其中,通常使用的方式例如包括将软件中的受保护代码段移植到软件外部、该受保护代码段进行加密处理、为软件颁发数字许可并基于数字许可的有效性来监控软件的使用等。
其中,在对受保护代码段进行加密处理时,不同的软件编译平台下生成的软件各自的文件格式不同、指令格式和含义各异,同一加密过程无法适用于所有平台下的软件。
发明内容
有鉴于此,本发明实施例提供了一种软件保护方法和装置,其目的之一是为不同平台下的软件提供一个统一的跨平台软件保护方案。
为此,本发明实施例提供的软件保护方法包括,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
本发明实施例提供的软件保护装置包括处理器,其中,处理器配置为在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
本发明实施例的软件保护方法和装置通过对软件编译过程中的中间代码进行加密,使得加密过程不会受到不同平台下软件指令格式各异的影响,实现了对软件代码进行跨平台的加密。
附图说明
图1为本发明一个实施例的软件保护方法的示意性流程图;
图2为本发明另一个实施例的软件保护方法的示意性流程图;
图3为本发明又一个实施例的软件保护方法的示意性流程图。
具体实施方式
下面参照附图对本发明的多个实施例进行详细说明。
图1为本发明一个实施例的软件保护方法的示意性流程图。
一般对软件的编译过程依次包括词法分析、语法分析、语义分析、生成中间代码、对中间代码进行优化、以及生成目标代码,然后对生成的目标代码进行链接后生成软件的可执行程序。在本实施例的软件保护方法中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如图1所示的如下处理:
S101、在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710611787.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种适用于web组态的脚本控制方法
- 下一篇:一种不透明谓词的插入方法及装置