代码混淆方法、装置及计算机可读存储介质制造方法及图纸

技术编号:17407506 阅读:30 留言:0更新日期:2018-03-07 05:10
本发明专利技术涉及一种代码混淆方法,包括,获取并统计待开发软件的预设类型代码信息,将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据,在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息,若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。本发明专利技术能够避免软件开发过程中被攻击与逆向,保护软件源码的安全。

Code obfuscation methods, devices and computer readable storage media

The invention relates to a method of code obfuscation, including acquisition and statistical software to be developed the default type code information, the default type code information into a preset type hash value, and save the default type code information with the preset mapping relation between data types of hash values, in the process of compiling the code to develop software in real time, or timing detection of compiled code is contained in the preservation of the default type code information, if detected in compiled code contains preset type code information, according to the mapping of data stored in the code will compile the code to replace the preset information corresponding to the default hash value type. The invention can avoid the attack and reverse in the process of software development, and protect the security of the source code.

【技术实现步骤摘要】
代码混淆方法、装置及计算机可读存储介质
本专利技术涉及软件开发领域,尤其涉及一种代码混淆方法、装置及计算机可读存储介质。
技术介绍
目前,APP开发过程中,为了方便开发与维护,通常将代码编译中的类、变量与函数的命名都设置为具有一定的可读性,并为了安全起见,程序员在编写软件的时候,需要考虑代码的混淆,这样通常需要花费程序员很多精力和时间,即便是如此,目前的APP开发过程中也存在容易造成程序源码泄露的问题,从而导致APP被黑客攻击与逆向。
技术实现思路
本专利技术的目的在于提供一种防止软件开发过程中源码泄露的技术方案,旨在避免软件开发过程中被黑客攻击与逆向,保护软件源码的安全。为实现上述目的,本专利技术提供一种代码混淆方法,包括如下步骤:A、获取并统计待开发软件的预设类型代码信息;B、将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据;C、在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息;D、若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。进一步地,哈希值的哈希值类型有多个,代码信息的信息类型有多个;将各个预设类型代码信息转换成预设类型哈希值的步骤包括:根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个预设类型代码信息对应的哈希值类型;将各个预设类型代码信息转换成对应的哈希值类型的哈希值。进一步地,保存预设类型代码信息与预设类型哈希值的映射关系数据的步骤包括:新建一个代码编译混淆文件;将各个预设类型代码信息与对应的预设类型哈希值一一关联映射、并存储在代码编译混淆文件中;代码编译混淆文件中包含映射关系数据表,该映射关系数据表中至少包含两列,一列存储有各个预设类型代码信息,另一列存储有与各个预设类型代码信息对应的预设类型哈希值;相互对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的同一行,不对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的不同行。进一步地,在步骤B之后,该方法还包括如下步骤:在编译待开发软件的代码之前,若收到用户发出的代码混淆的关闭指令,则将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在编译待开发软件的代码过程中不进行代码混淆处理;若在编译待开发软件的代码过程中,收到用户发出的代码混淆的关闭指令,则将已替换的预设类型哈希值还原成对应的预设类型代码信息,并在代码信息还原完成后将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在后续编译待开发软件的代码过程中不进行混淆处理。为实现上述目的,本专利技术还提供了一种代码混淆装置,该装置包括:存储器、处理器及存储在存储器上并可在处理器上运行的代码混淆程序,代码混淆程序被处理器执行时执行以下步骤:A、获取并统计待开发软件的预设类型代码信息;B、将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据;C、在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息;D、若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。优选地,哈希值的哈希值类型有多个,代码信息的信息类型有多个;处理器执行代码混淆程序实现将各个预设类型代码信息转换成预设类型哈希值的步骤包括:根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个预设类型代码信息对应的哈希值类型;将各个预设类型代码信息转换成对应的哈希值类型的哈希值。优选地,处理器执行代码混淆程序实现保存预设类型代码信息与预设类型哈希值的映射关系数据的步骤包括:新建一个代码编译混淆文件;将各个预设类型代码信息与对应的预设类型哈希值一一关联映射、并存储在代码编译混淆文件中;代码编译混淆文件中包含映射关系数据表,该映射关系数据表中至少包含两列,一列存储有各个预设类型代码信息,另一列存储有与各个预设类型代码信息对应的预设类型哈希值;相互对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的同一行,不对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的不同行。优选地,处理器执行代码混淆程序实现步骤B之后,还用于执行代码混淆程序以实现以下步骤:在编译待开发软件的代码之前,若收到用户发出的代码混淆的关闭指令,则将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在编译待开发软件的代码过程中不进行代码混淆处理;及/或,若在编译待开发软件的代码过程中,收到用户发出的代码混淆的关闭指令,则将已替换的预设类型哈希值还原成对应的预设类型代码信息,并在代码信息还原完成后将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在后续编译待开发软件的代码过程中不进行混淆处理。为了实现上述目的,本专利技术还提出了一种计算机可读存储介质,该计算机可读存储介质存储有代码混淆程序,代码混淆程序被处理器执行时实现上述任一实施例中的代码混淆方法。本专利技术的有益效果是:通过将待开发软件的预设类型代码信息转换为与其对应的预设类型哈希值并保存预设类型代码信息与预设类型哈希值之间的映射关系数据,在软件开发过程中,根据保存的映射关系数据将编译的代码中含有的预设类型代码信息替换为与其相对应的预设类型哈希值,而预设类型哈希值为不可读的代码且具有不可逆性和唯一性,因此,极大地避免了软件开发过程中存在的被攻击与逆向的分险。附图说明图1为本专利技术一实施例的流程示意图;图2为图1所示步骤S2的细化流程示意图;图3为本专利技术的代码混淆系统一实施例的运行环境示意图;图4为本专利技术一实施例的系统结构示意图;图5为图4所示存储模块的结构示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实施例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,图1为本专利技术一实施例的流程示意图,在该实施例中,包括以下步骤:S11,获取并统计待开发软件的预设类型代码信息。具体地,获取的预设类型代码信息包括代码中的类名、变量名以及函数名。S12,将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据。S13,在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息。S14,若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。具体如图2所示,步骤S12包括如下步骤:S12-1:确定各个预设类型代码信息对应的哈希值的哈希值类型。具体为,根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个预设类型代码信息对应的哈希值类型。其中,哈希值类型包括MD5值,且MD5值为不可读的代码并具有不可逆性和唯一性。S12-2:将各个预设类型代码信息转换成对应的哈希值的哈希值类型。其中,哈希值的哈希值类型为预设类型哈希值。S12-3:新建一个代码编译混淆文件。S12-4:将各个预设类型代码信息与对应的预设类型哈希值一一关联映射并存储在代码编译混淆文件中。例如,在代码编译本文档来自技高网...
代码混淆方法、装置及计算机可读存储介质

【技术保护点】
一种代码混淆方法,其特征在于,所述方法包括如下步骤:A、获取并统计待开发软件的预设类型代码信息;B、将各个所述预设类型代码信息转换成预设类型哈希值,并保存所述预设类型代码信息与所述预设类型哈希值的映射关系数据;C、在编译所述待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的所述预设类型代码信息;D、若侦测到编译的代码中含有所述预设类型代码信息,则根据保存的所述映射关系数据将编译的代码中的所述预设类型代码信息替换为与其相对应的所述预设类型哈希值。

【技术特征摘要】
1.一种代码混淆方法,其特征在于,所述方法包括如下步骤:A、获取并统计待开发软件的预设类型代码信息;B、将各个所述预设类型代码信息转换成预设类型哈希值,并保存所述预设类型代码信息与所述预设类型哈希值的映射关系数据;C、在编译所述待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的所述预设类型代码信息;D、若侦测到编译的代码中含有所述预设类型代码信息,则根据保存的所述映射关系数据将编译的代码中的所述预设类型代码信息替换为与其相对应的所述预设类型哈希值。2.根据权利要求1所述的代码混淆方法,其特征在于,所述哈希值的哈希值类型有多个,所述代码信息的信息类型有多个;所述将各个所述预设类型代码信息转换成预设类型哈希值的步骤包括:根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个所述预设类型代码信息对应的哈希值类型;将各个所述预设类型代码信息转换成对应的哈希值类型的哈希值。3.根据权利要求1或2所述的代码混淆方法,其特征在于,所述保存所述预设类型代码信息与所述预设类型哈希值的映射关系数据的步骤包括:新建一个代码编译混淆文件;将各个所述预设类型代码信息与对应的所述预设类型哈希值一一关联映射、并存储在所述代码编译混淆文件中;所述代码编译混淆文件中包含映射关系数据表,该映射关系数据表中至少包含两列,一列存储有各个预设类型代码信息,另一列存储有与各个预设类型代码信息对应的预设类型哈希值;相互对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的同一行,不对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的不同行。4.根据权利要求1所述的代码混淆方法,其特征在于,在所述步骤B之后,该方法还包括如下步骤:在编译所述待开发软件的代码之前,若收到用户发出的代码混淆的关闭指令,则将保存的所述预设类型代码信息与所述预设类型哈希值的映射关系数据删除,并在编译所述待开发软件的代码过程中不进行代码混淆处理;及/或,若在编译所述待开发软件的代码过程中,收到用户发出的代码混淆的关闭指令,则将已替换的所述预设类型哈希值还原成对应的所述预设类型代码信息,并在代码信息还原完成后将保存的所述预设类型代码信息与所述预设类型哈希值的映射关系数据删除,并在后续编译所述待开发软件的代码过程中不进行混淆处理。5.一种代码混淆装置,其特征在于,所述装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码混淆程序,所述代码混淆程序被所述处理器执行时执行以下步骤:A、获取并统计待开发软...

【专利技术属性】
技术研发人员:何兵
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1