[发明专利]一种代码混淆的加密方法、装置、设备及可读介质有效
申请号: | 202111116879.2 | 申请日: | 2021-09-23 |
公开(公告)号: | CN113569269B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 范益 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 刘小峰;张涛 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 混淆 加密 方法 装置 设备 可读 介质 | ||
本发明公开了一种代码混淆的加密方法,包括:获取待加密程序中全部函数代码的位置信息;基于所述位置信息逐个判断对应的所述函数代码中是否存在跳转指令;若是所述函数代码中存在跳转指令,则将所述跳转指令和对应地址信息保存到解密数据体中,并将所述跳转指令替换为断点指令;以及响应于完成对所述全部函数代码执行上一步骤,则基于所述解密数据体和替换指令得到的加密程序生成加密文件。本发明还公开了一种代码混淆的加密装置、计算机设备和可读存储介质。本发明通过指令替换将原本的程序流程进行拆解,并允许被加密保护的程序在运行中动态地还原和拆解代码,防止破解者将完整的程序代码保存下来导致程序被破解的问题,提高了程序的安全性。
技术领域
本发明涉及计算机与通信技术领域,尤其涉及一种代码混淆的加密方法、装置、设备及可读介质。
背景技术
随着互联网客户端技术的迅速发展,客户端的各种技术越来越丰富,功能也越来越复杂,但由于客户端代码是运行在用户终端上的,攻击者很容易阅读、分析和破解,给系统带来各种风险。
代码混淆(Obfuscated code)亦称为花指令,是将计算机程序的代码转换成一种功能上等价但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码,也有对编译完成的二进制文件代码进行混淆加密的做法。执行代码混淆的程序被称作代码混淆器。
在市场上,各式各样的代码混淆工具常被用在保护软件产品不被反编译和破解,保护软件知识产权等方面,越来越受到人们的重视。现有存在许多功能各异的代码混淆器:将代码中的各种元素,如变量、函数、类的名字改成无意义的名字,比如改写成单个字母、或是简短的无意义字母组合、甚至改写成“_”这样的符号,使得阅读的人无法根据名字猜测其用途;重写代码中的逻辑部分,将其变成功能上等价,但是更难理解的形式,比如将for循环改成while循环、将循环改写成递归、精简中间变量等;打乱代码的格式,比如删除空格、将多行代码挤到一行中、或者将一行代码断成多行等。
现有的代码混淆方案,可以通过一般的分析手段获得原始流程,从而被破解。
发明内容
有鉴于此,本发明实施例的目的在于提出一种代码混淆的加密方法、装置、设备及可读介质,将动态调试技术融入到代码混淆中,通过指令替换将原本的程序流程进行拆解,并允许被加密保护的程序在运行中动态地还原和拆解代码,防止破解者将完整的程序代码保存下来导致程序被破解的问题。相比现有的代码混淆方案,本发明所提供的方法不能通过一般的分析手段获得原始流程,并在运行中通过动态调试技术实时恢复和再混淆,因而必须完整的跟踪每一步程序执行流程才有发现原始流程的可能,大幅提高了加密保护强度,提高了破解成本,从而提高了程序的安全性。
基于上述目的,本发明实施例的一方面提供了一种代码混淆的加密方法,包括以下步骤:获取待加密程序中全部函数代码的位置信息;基于所述位置信息逐个判断对应的所述函数代码中是否存在跳转指令;若是所述函数代码中存在跳转指令,则将所述跳转指令和对应地址信息保存到解密数据体中,并将所述跳转指令替换为断点指令;以及响应于完成对所述全部函数代码执行上一步骤,则基于所述解密数据体和替换指令得到的加密程序生成加密文件。
在一些实施方式中,方法还包括:通过所述加密文件获取所述加密程序,并执行所述加密程序;响应于执行断点指令,则基于所述解密数据体获取对应的跳转指令;基于所述跳转指令继续执行所述加密程序。
在一些实施方式中,基于所述跳转指令继续执行所述加密程序包括:将所述断点指令替换为所述对应的跳转指令并执行所述对应的跳转指令,以跳转到所述加密程序的对应区域;将所述对应的跳转指令替换为所述断点指令,并基于所述对应区域继续执行所述加密程序。
在一些实施方式中,方法还包括:获取待加密文件,并对所述待加密文件进行校验以判断所述待加密文件的文件头、程序头表和节头表是否有效;响应于所述待加密文件的文件头、程序头表和节头表有效,则基于所述待加密文件获取待加密程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111116879.2/2.html,转载请声明来源钻瓜专利网。