【技术实现步骤摘要】
代码混淆方法、装置及存储介质
本公开涉及信息处理领域,尤其涉及一种代码混淆方法、装置及存储介质。
技术介绍
随着软件相关技术的飞速发展,人们的生活和工作对应用程序的依赖度也随之提高,并且应用程序的安全意识也同样在增强。应用程序在发布后,容易被反编译而暴露源代码,致使应用程序所携带的信息变得不安全。这时,需要对相关应用程序所涉及的代码进行代码混淆(ObfuscatedCode)处理,将应用程序中的代码以某种规则转换为难以阅读和理解的代码,以此实现对代码的保护。目前对应用程序代码混淆处理中,由于文件类型的不同需要有不同的配置方式,导致代码混淆中经常出现错误,混淆处理的效率较低。
技术实现思路
本公开提供一种代码混淆方法、装置及存储介质。根据本公开实施例的第一方面,提供一种代码混淆方法,包括:获取混淆规则文件及防止混淆文件;根据对所述防止混淆文件的调用,确定待混淆代码中不参与代码混淆的第一部分和参与代码混淆的第二部分;根据所述混淆规则文件包含的混淆规则,对所述第二部分进行代码混淆 ...
【技术保护点】
1.一种代码混淆方法,其特征在于,包括:/n获取混淆规则文件及防止混淆文件;/n根据对所述防止混淆文件的调用,确定待混淆代码中不参与代码混淆的第一部分和参与代码混淆的第二部分;/n根据所述混淆规则文件包含的混淆规则,对所述第二部分进行代码混淆。/n
【技术特征摘要】
1.一种代码混淆方法,其特征在于,包括:
获取混淆规则文件及防止混淆文件;
根据对所述防止混淆文件的调用,确定待混淆代码中不参与代码混淆的第一部分和参与代码混淆的第二部分;
根据所述混淆规则文件包含的混淆规则,对所述第二部分进行代码混淆。
2.根据权利要求1所述的方法,其特征在于,所述根据对所述防止混淆文件的调用,确定待混淆代码中不参与代码混淆的第一部分和参与代码混淆的第二部分,包括:
根据所述待混淆代码中调用所述防止混淆文件的调用声明所在位置,将与所述调用声明具有预定位置关系的代码作为所述第一部分,并将与所述调用声明不具有预定位置关系的代码作为所述第二部分。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待混淆代码中调用所述防止混淆文件的调用声明所在位置,将与所述调用声明具有预定位置关系的代码作为所述第一部分,并将与所述调用声明不具有预定位置关系的代码作为所述第二部分,包括:
确定所述防止混淆文件的调用声明在所述待混淆代码的文件中的所在位置;
将定义位于所述调用声明所在位置之后N行的代码,确定为所述第一部分,其中,N为正整数;
将定义位于所述调用声明所在位置之前和/或定义位于所述调用声明所在位置之后N+M行的代码,确定为所述第二部分,其中,M为正整数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一部分中不同类别的代码对象添加到不同的队列中;其中,同一所述队列中存储相同类型的所述代码对象;
对各个所述队列中所包含的代码对象进行加密。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述第一部分包含的所述代码对象加密前的第一标识和加密后的第二标识;
将所述第二部分的引用信息中的所述第一标识替换为所述第二标识;其中,所述引用信息包括:引用关系和/或引用路径。
6.根据权利要求4所述的方法,其特征在于,所述第一部分包含的代码对象包括:类文件;
所述方法还包括:
在所述第一部分所包含的所述类文件中插入防止逆向解析的代码块。
7.根据权利要求4所述的方法,其特征在于,所述第一部分包含的代码对象包括:类文件、方法对象和/或属性对象;
所述将所述第一部分中不同类别的代码对象添加到不同的队列中,包括以下至少之一:
将所述第一部分包含的所述类文件添加到类队列中;
将所述第一部分包含的所述方法对象添加到方法队列中;
将所述第一部分包含的所述属性对象添加到属性队列中。
8.一种代码混淆装置,其特征在于,包括:
获取单元,用于获取混淆规则文件及防止混淆文件;
确定单元,用于根据对所述防止混淆文件的调用,确定待混淆代码中不参与代码...
【专利技术属性】
技术研发人员:饶福贵,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。