[发明专利]软件保护方法和装置在审
申请号: | 201710473369.8 | 申请日: | 2017-06-21 |
公开(公告)号: | CN107292131A | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 孙吉平;周建辉 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/14 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 孙清然,王琦 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 保护 方法 装置 | ||
技术领域
本发明涉及计算机应用技术,特别是涉及一种软件保护方法和装置。
背景技术
.NET代码即IL代码,由.NET运行时进行解释执行,由.NET编译器将源代码编译为IL代码。通过现有工具可自动反编译IL代码并还原为源代码形式。基于上述原因,破解者通常能够还原软件的核心算法,或通过修改代码等达到破解软件的目的。
目前,对.NET软件进行保护的方法有以下几种:
第一种是通过对.NET符号名称进行混淆,到达反编译后难以阅读的目的。由于这种方法不能对代码逻辑进行处理,因此,可以通过对算法的分析来破解软件。
第二种是对代码逻辑进行混淆。由于目前混淆的程度还比较低,算法逻辑依然可以阅读,无法抵御破解者攻击。
第三种是对.NET软件进行压缩、加密,软件执行前将其解压、解密再执行.NET代码。在这种保护方式下,可以通过转存得到原始.NET代码。
由此可见,上述现有的.NET软件保护方法,无法有效确保软件的安全性。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件保护方法和装置,可以提高软件的安全性。
为了达到上述目的,本发明提出的技术方案为:
一种软件保护方法,包括:
a、根据.NET代码,生成相应的.NET数据结构,从所述.NET数据结构中抽取待保护方法代码;
b、将所述待保护的方法代码转换为虚拟化代码;
c、在抽取所述待保护方法代码的位置处添加用于调用x86/x64虚拟机的指令代码,所述x86/x64虚拟机用于执行所述虚拟化代码。
一种软件保护装置,包括:
抽取单元,用于根据.NET代码,生成相应的.NET数据结构,从所述.NET数据结构中抽取待保护方法代码;
转换单元,用于将所述待保护的方法代码转换为虚拟化代码;
替换单元,用于在抽取所述待保护方法代码的位置处添加用于调用x86/x64虚拟机的指令代码,所述x86/x64虚拟机用于执行所述虚拟化代码。
综上所述,本发明提出的软件保护方法和装置,通过对.NET代码中需要保护方法的代码进行处理,将需要保护方法的.NET代码转换为虚拟化代码,然后将需要保护方法的.NET代码替换为调用x86/x64虚拟机的指令代码。这样,经过上述处理的.NET代码运行后,当执行到要保护方法时,就会在x86/x64虚拟机中执行相应的虚拟化代码,在此期间被保护的方法代码将无法被反编译和调试,因此可以提高.NET程序的安全性,防止恶意篡改,对软件版权起到了保护作用。
附图说明
图1为本发明实施例的方法流程示意图;
图2为经过本发明实施例处理后的软件程序运行过程示意图;
图3为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:将x86/x64本地代码的虚拟机保护技术移植到.NET保护,即通过将.NET代码转换为x86/x64虚拟机能够执行的代码,且.NET运行时调用x86/x64虚拟机执行算法逻辑,以达到无法有效还原.NET代码的目的,从而可以提高软件的安全性。
图1为本发明实施例的方法流程示意图,如图1所示,该实施例实现的软件保护方法主要包括:
步骤101、根据.NET代码,生成相应的.NET数据结构,从所述.NET数据结构中抽取待保护方法代码。
较佳地,所述根据所述.NET代码,生成相应的.NET数据结构包括:
获取所述.NET代码的.NET元数据;
解析所述.NET元数据,根据所包含的方法函数体,生成相应的.NET数据结构。
较佳地,所述生成相应的.NET数据结构之后还包括:
将所述x86/x64虚拟机添加至所述.NET数据结构的全局数组中;
将内存加载方法增加到所述.NET数据结构中,所述内存加载方法用于获取虚拟机入口地址并加载所述x86/x64虚拟机;
如果所述.NET数据结构中不存在.cctor方法,则将.cctor方法添加至所述.NET数据结构中,其中,所述.cctor方法中包括第二call代码和Marshal库;
所述第二call代码用于调用所述内存加载方法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710473369.8/2.html,转载请声明来源钻瓜专利网。