[发明专利]代码保护方法、代码保护装置、存储介质与电子设备有效
申请号: | 201910319634.6 | 申请日: | 2019-04-19 |
公开(公告)号: | CN110059456B | 公开(公告)日: | 2020-06-05 |
发明(设计)人: | 付存军 | 申请(专利权)人: | 同盾控股有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 王辉;阚梓瑄 |
地址: | 311121 浙江省杭州市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 保护 方法 保护装置 存储 介质 电子设备 | ||
本公开提供了一种代码保护方法、代码保护装置、计算机可读存储介质与电子设备,属于信息安全技术领域。该方法包括:将源代码编译为中间代码,并提取所述中间代码中的第一类函数与第二类函数;根据所述第一类函数生成用于调用所述第一类函数的自定义函数;在所述中间代码中,将所述第二类函数中关于所述第一类函数的调用指令替换为所述自定义函数;将替换后的所述中间代码重新编译,得到目标代码文件。本公开可以防止源代码被反向编译破解,实现对源代码的有效保护,且所使用的方法不影响代码程序的正常运行,具有较高的适用性。
技术领域
本公开涉及信息安全技术领域,尤其涉及一种代码保护方法、代码保护装置、计算机可读存储介质与电子设备。
背景技术
软件开发常常需要投入大量的人力与物力,对于进行软件开发的企业、机构或个人而言,软件代码是宝贵的无形资产。目前,由于一些反编译工具的出现,使得软件代码容易被反向编译,导致其源代码被攻击者掌握甚至公开,损害软件开发人员的利益。因此,如何对软件代码进行有效的保护,是现有技术亟待解决的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种代码保护方法、代码保护装置、计算机可读存储介质与电子设备,进而至少在一定程度上克服现有技术中软件代码容易被反向编译的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种代码保护方法,包括:将源代码编译为中间代码,并提取所述中间代码中的第一类函数与第二类函数;根据所述第一类函数生成用于调用所述第一类函数的自定义函数;在所述中间代码中,将所述第二类函数中关于所述第一类函数的调用指令替换为所述自定义函数;将替换后的所述中间代码重新编译,得到目标代码文件。
在本公开的一种示例性实施例中,所述第一类函数包括声明函数,所述第二类函数包括实现函数。
在本公开的一种示例性实施例中,所述将源代码编译为中间代码,并提取所述中间代码中的第一类函数与第二类函数,包括:利用LLVM将所述源代码编译为所述中间代码;对所述LLVM的源码进行编译,得到所述LLVM的动态库;利用所述动态库解析所述中间代码,以遍历所述中间代码中的函数,并将其中的每个函数划分为第一类函数或第二类函数。
在本公开的一种示例性实施例中,所述第二类函数中的调用指令包括CallInst指令和/或InvokeInst指令。
在本公开的一种示例性实施例中,所述根据所述第一类函数生成用于调用所述第一类函数的自定义函数,包括:对于每个所述第一类函数,对应生成一个自定义函数,并存储所述第一类函数与自定义函数之间的映射关系。
在本公开的一种示例性实施例中,所述将替换后的所述中间代码重新编译,得到目标代码文件,包括:将替换后的所述中间代码重新编译,并根据所述映射关系添加链接,得到所述目标代码文件。
在本公开的一种示例性实施例中,所述自定义函数的函数名是随机生成的。
根据本公开的一个方面,提供一种代码保护装置,包括:第一编译模块,用于将源代码编译为中间代码,并提取所述中间代码中的第一类函数与第二类函数;函数生成模块,用于根据所述第一类函数生成用于调用所述第一类函数的自定义函数;指令替换模块,用于在所述中间代码中,将所述第二类函数中关于所述第一类函数的调用指令替换为所述自定义函数;第二编译模块,用于将替换后的所述中间代码重新编译,得到目标代码文件。
在本公开的一种示例性实施例中,所述第一类函数包括声明函数,所述第二类函数包括实现函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同盾控股有限公司,未经同盾控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910319634.6/2.html,转载请声明来源钻瓜专利网。