一种代码混淆方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33133514 阅读:18 留言:0更新日期:2022-04-17 00:54
本申请提供了一种代码混淆方法、装置、电子设备及存储介质,该方法包括:本申请针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;按照预设针对所述待选替换方法的选取方法,从所述待选替换方法中,选出目标替换方法;按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码;运行替换后的所述混淆代码,以隐藏所述原始代码。本申请根据加密替换表设置多个待选替换方案,对于原始代码中的不同常量可以使用不同待选替换方案进行替换,即使通过多次替换之后的运行,也不易从中得到替换的规律,大大提升了原始代码的安全性。码的安全性。码的安全性。

【技术实现步骤摘要】
一种代码混淆方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种代码混淆方法、装置、电子设备及存储介质。

技术介绍

[0002]代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。程序编译生成的代码进行代码混淆,增加代码被反汇编,代码逻辑被解读的难度。提高代码算法被破解的安全性。
[0003]现有技术中对代码进行等价替换时,仅仅进行简单的替换,且替换方式固定,已不能满足对于代码安全性的要求。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种代码混淆方法、装置、电子设备及存储介质,根据加密替换表设置多个待选替换方案,对于原始代码中的不同常量可以使用不同待选替换方案进行替换,即使通过多次替换之后的运行,也不易从中得到替换的规律,大大提升了原始代码的安全性。
[0005]第一方面,本申请实施例提供了一种代码混淆方法,所述方法包括:
[0006]针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;
[0007]按照预设针对所述待选替换方法的选取方法,从所述待选替换方法中,选出目标替换方法;
[0008]按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码;
[0009]运行替换后的所述混淆代码,以隐藏所述原始代码。
[0010]在本申请一些技术方案中,上述方法通过以下方式得到所述加密替换表:
[0011]建立包括预设数量初始单元格的初始替换表;所述初始单元格中设置有以下至少之一:数字、字符、函数、运算符号;
[0012]从加密算法库中的多个待选加密算法中,选取目标待选加密算法;
[0013]使用所述目标待选加密算法对所述初始替换表进行加密处理,得到包含加密单元格的所述加密替换表。
[0014]在本申请一些技术方案中,上述针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法,包括:
[0015]针对所述原始代码中的待替换常量,对所述加密替换表中的至少一个所述加密单
元格进行排列组合,得到多个待选表达式,并计算每个所述待选表达式的计算结果;
[0016]根据每个所述待选表达式的计算结果,从所述待选表达式中,选择所述计算结果与所述待选替换常量等价的目标待选表达式;
[0017]根据所述目标待选表达式,设定所述待选替换方法。
[0018]在本申请一些技术方案中,上述根据所述目标待选表达式,设定所述待选替换方法,包括:
[0019]根据所述目标待选表达式对应加密单元格的内容,替换所述待替换常量。
[0020]在本申请一些技术方案中,上述根据所述目标待选表达式,设定所述待选替换方法,包括:
[0021]根据所述目标待选表达式对应加密单元格在所述加密替换表中的位置,替换所述待替换常量。
[0022]在本申请一些技术方案中,上述待替换常量为待替换常数,所述针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;包括:
[0023]针对所述原始代码中的待替换常数,按照所述待替换常数中每个数字的数位,对所述待替换常数进行拆分,得到待替换子常数;
[0024]针对每个所述待替换子常数,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法。
[0025]在本申请一些技术方案中,上述按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码,包括:
[0026]所述按照所述目标替换方法,对所述待替换子常数进行替换处理,得到子替换结果;
[0027]将所述子替换结果按照所述待替换常数中每个数字的数位进行组合,得到替换后的混淆代码。
[0028]第二方面,本申请实施例提供了一种代码混淆装置,所述装置包括:
[0029]获取模块,用于针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;
[0030]筛选模块,用于按照预设针对所述待选替换方法的选取方法,从所述待选替换方法中,选出目标替换方法;
[0031]替换模块,用于按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码;
[0032]运行模块,用于运行替换后的所述混淆代码,以隐藏所述原始代码。
[0033]第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的代码混淆方法的步骤。
[0034]第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的代码混淆方法的步骤。
[0035]本申请的实施例提供的技术方案可以包括以下有益效果:
[0036]本申请针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;然后,按照预设针对所述待选替换方法的选取方法,从所述待选替换方法中,选出目标替换方法;之后,按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码;之后,运行替换后的所述混淆代码,以隐藏所述原始代码。本申请根据加密替换表设置多个待选替换方案,对于原始代码中的不同常量可以使用不同待选替换方案进行替换,即使通过多次替换之后的运行,也不易从中得到替换的规律,大大提升了原始代码的安全性。
[0037]为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0038]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0039]图1示出了本申请实施例所提供的一种代码混淆方法的流程示意图;
[0040]图2示出了本申请实施例所提供的一种设置加密替换表的流程示意图;
[0041]图3示出了本申请实施例所提供的一种代码混淆装置示意图;
[0042]图4为本申请实施例提供的一种电子设备的结构示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码混淆方法,其特征在于,所述方法包括:针对原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法;按照预设针对所述待选替换方法的选取方法,从所述待选替换方法中,选出目标替换方法;按照所述目标替换方法,对所述原始代码中的待替换常量进行替换处理,得到替换后的混淆代码;运行替换后的所述混淆代码,以隐藏所述原始代码。2.根据权利要求1所述的方法,其特征在于,通过以下方式得到所述加密替换表:建立包括预设数量初始单元格的初始替换表;所述初始单元格中设置有以下至少之一:数字、字符、函数、运算符号;从加密算法库中的多个待选加密算法中,选取目标待选加密算法;使用所述目标待选加密算法对所述初始替换表进行加密处理,得到包含加密单元格的所述加密替换表。3.根据权利要求2所述的方法,其特征在于,所述针对所述原始代码中的待替换常量,根据预设的加密替换表中加密单元格的内容和顺序,从所述加密替换表中,获取不同数量的待选替换方法,包括:针对所述原始代码中的待替换常量,对所述加密替换表中的至少一个所述加密单元格进行排列组合,得到多个待选表达式,并计算每个所述待选表达式的计算结果;根据每个所述待选表达式的计算结果,从所述待选表达式中,选择所述计算结果与所述待选替换常量等价的目标待选表达式;根据所述目标待选表达式,设定所述待选替换方法。4.根据权利要求3所述的方法,其特征在于,所述根据所述目标待选表达式,设定所述待选替换方法,包括:根据所述目标待选表达式对应加密单元格的内容,替换所述待替换常量。5.根据权利要求3所述的方法,其特征在于,所述根据所述目标待选表达式,设定所述待选替换方法,包括:根据所述目标待选表达式对应加密单元格在所述加密替换表中的位置,替换所述待替换常量。6.根据权利要求1所述的方法,其特征在...

【专利技术属性】
技术研发人员:马涛吴璇刘加瑞
申请(专利权)人:北京华云安软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1