[发明专利]代码混淆方法、装置及计算机可读存储介质在审
申请号: | 201710327381.8 | 申请日: | 2017-05-10 |
公开(公告)号: | CN107766702A | 公开(公告)日: | 2018-03-06 |
发明(设计)人: | 何兵 | 申请(专利权)人: | 平安科技(深圳)有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 深圳市沃德知识产权代理事务所(普通合伙)44347 | 代理人: | 高杰,于志光 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 混淆 方法 装置 计算机 可读 存储 介质 | ||
技术领域
本发明涉及软件开发领域,尤其涉及一种代码混淆方法、装置及计算机可读存储介质。
背景技术
目前,APP开发过程中,为了方便开发与维护,通常将代码编译中的类、变量与函数的命名都设置为具有一定的可读性,并为了安全起见,程序员在编写软件的时候,需要考虑代码的混淆,这样通常需要花费程序员很多精力和时间,即便是如此,目前的APP开发过程中也存在容易造成程序源码泄露的问题,从而导致APP被黑客攻击与逆向。
发明内容
本发明的目的在于提供一种防止软件开发过程中源码泄露的技术方案,旨在避免软件开发过程中被黑客攻击与逆向,保护软件源码的安全。
为实现上述目的,本发明提供一种代码混淆方法,包括如下步骤:
A、获取并统计待开发软件的预设类型代码信息;
B、将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据;
C、在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息;
D、若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。
进一步地,哈希值的哈希值类型有多个,代码信息的信息类型有多个;将各个预设类型代码信息转换成预设类型哈希值的步骤包括:
根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个预设类型代码信息对应的哈希值类型;
将各个预设类型代码信息转换成对应的哈希值类型的哈希值。
进一步地,保存预设类型代码信息与预设类型哈希值的映射关系数据的步骤包括:
新建一个代码编译混淆文件;
将各个预设类型代码信息与对应的预设类型哈希值一一关联映射、并存储在代码编译混淆文件中;代码编译混淆文件中包含映射关系数据表,该映射关系数据表中至少包含两列,一列存储有各个预设类型代码信息,另一列存储有与各个预设类型代码信息对应的预设类型哈希值;
相互对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的同一行,不对应的预设类型代码信息和预设类型哈希值处于该映射关系数据表的不同行。
进一步地,在步骤B之后,该方法还包括如下步骤:
在编译待开发软件的代码之前,若收到用户发出的代码混淆的关闭指令,则将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在编译待开发软件的代码过程中不进行代码混淆处理;
若在编译待开发软件的代码过程中,收到用户发出的代码混淆的关闭指令,则将已替换的预设类型哈希值还原成对应的预设类型代码信息,并在代码信息还原完成后将保存的预设类型代码信息与预设类型哈希值的映射关系数据删除,并在后续编译待开发软件的代码过程中不进行混淆处理。
为实现上述目的,本发明还提供了一种代码混淆装置,该装置包括:存储器、处理器及存储在存储器上并可在处理器上运行的代码混淆程序,代码混淆程序被处理器执行时执行以下步骤:
A、获取并统计待开发软件的预设类型代码信息;
B、将各个预设类型代码信息转换成预设类型哈希值,并保存预设类型代码信息与预设类型哈希值的映射关系数据;
C、在编译待开发软件的代码过程中,实时或者定时侦测编译的代码中是否含有保存的预设类型代码信息;
D、若侦测到编译的代码中含有预设类型代码信息,则根据保存的映射关系数据将编译的代码中的预设类型代码信息替换为与其相对应的预设类型哈希值。
优选地,哈希值的哈希值类型有多个,代码信息的信息类型有多个;处理器执行代码混淆程序实现将各个预设类型代码信息转换成预设类型哈希值的步骤包括:
根据代码信息的信息类型与哈希值的哈希值类型的映射关系,确定各个预设类型代码信息对应的哈希值类型;
将各个预设类型代码信息转换成对应的哈希值类型的哈希值。
优选地,处理器执行代码混淆程序实现保存预设类型代码信息与预设类型哈希值的映射关系数据的步骤包括:
新建一个代码编译混淆文件;
将各个预设类型代码信息与对应的预设类型哈希值一一关联映射、并存储在代码编译混淆文件中;代码编译混淆文件中包含映射关系数据表,该映射关系数据表中至少包含两列,一列存储有各个预设类型代码信息,另一列存储有与各个预设类型代码信息对应的预设类型哈希值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安科技(深圳)有限公司,未经平安科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710327381.8/2.html,转载请声明来源钻瓜专利网。