The invention discloses a Java code obfuscation method based on complex control flow, including 1 steps, constructing the opaque predicates set; step 2, find a cycle structure; step 3, open loop structure; step 4, insert the opaque predicates set in open loop structure; step 5, complicated circulation structure. The invention overcomes the shortcoming that the existing code obfuscation method has insufficient utilization of the loop structure, and realizes a control flow hybrid method using a cyclic structure.
【技术实现步骤摘要】
一种基于控制流复杂化的Java代码混淆方法
本专利技术涉及一种基于控制流复杂化的Java代码混淆方法,属于计算机安全领域。
技术介绍
伴随着移动互联网的兴起,移动端应用越来越普及,这些应用充分利用了移动设备的计算能力和便携性,方便了人们的生活,但是移动端应用中有大量的Java程序。Java程序在编译后以打包的.class文件的形式分发,这些.class文件都是Java字节码,并且原始的Java字节码可以通过反编译的方法还原出与原代码差别只在注释的源代码。这就给了攻击者或者其他的不法分子机会。这带来的主要问题如下:1.软件盗版,不法分子通过反编译之后的源代码可以轻易的复制出与原来的软件功能相同或相近的软件,或者破解出不需要激活的软件。2.篡改,修改软件源代码,不改变软件的使用功能,但是在其中添加了广告或者其他的恶意代码和病毒。为了解决这些问题,提出了代码混淆的方法,主要分为四类:布局混淆转换、控制混淆转换、数据混淆转换以及预防性混淆转换。这些方法主要是用来应对反编译,对循环结构利用不足。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种基于控制流复杂化的Java代码混淆方法。为了达到上述目的,本专利技术所采用的技术方案是:一种基于控制流复杂化的Java代码混淆方法,包括以下步骤,步骤1,构建不透明谓词集合;步骤2,发现循环结构;步骤3,拆开循环结构;步骤4,在拆开的循环结构中插入不透明谓词集合;步骤5,复杂化循环结构。不透明谓词集合包括构造恒为真的谓词集合T以及恒为假的谓词集合F。发现循环结构的过程为,S11,遍历class文件寻找条件跳转指令M;S12 ...
【技术保护点】
一种基于控制流复杂化的Java代码混淆方法,其特征在于:包括以下步骤,步骤1,构建不透明谓词集合;步骤2,发现循环结构;步骤3,拆开循环结构;步骤4,在拆开的循环结构中插入不透明谓词集合;步骤5,复杂化循环结构。
【技术特征摘要】
1.一种基于控制流复杂化的Java代码混淆方法,其特征在于:包括以下步骤,步骤1,构建不透明谓词集合;步骤2,发现循环结构;步骤3,拆开循环结构;步骤4,在拆开的循环结构中插入不透明谓词集合;步骤5,复杂化循环结构。2.根据权利要求1所述的一种基于控制流复杂化的Java代码混淆方法,其特征在于:不透明谓词集合包括构造恒为真的谓词集合T以及恒为假的谓词集合F。3.根据权利要求2所述的一种基于控制流复杂化的Java代码混淆方法,其特征在于:发现循环结构的过程为,S11,遍历class文件寻找条件跳转指令M;S12,找到条件跳转指令M的跳转标签E;S13,查看跳转标签E所在位置的上一条指令是否为无条件跳转指令N,如果是,找到无条件跳转指令N的跳转标签B;S14,判断跳转标签B是否在条件跳转指令M之前,如果是,遍历跳转标签B到条件跳转指令M之间的代码段,查看是否还有其余跳转指令,如果没有,那么从跳转标签B到跳转标签E之间的代码段为一个循环结构。4.根据权利要求3所述的一种基于控制流复杂化的Java代码混淆方法,其特征在于:拆开循环结构的过程为,S21,定义从跳转标签B到无条件跳转指令N之前的代码段为循环结构的循环体,定义循环结构原先具有的循环体的跳转标签B记为B0,定义复制循环体的次数为k,计数器i=0;S22,i=i+1;S23,在无条件跳转指令N之前插入一循环体,插入的循环体的跳转标签记为Bi;S24,判断i是否大于等于k,如果否,则转至步骤S22,如果是,则转至步骤S25;S25,去掉无条件跳转指令N,在同样的位置插入代码块D,所述代码块D根据输入和局部变量的状态跳转B0到Bk中的任何一个。5.根据权利要求4所述的一种基于控制流复杂化的J...
【专利技术属性】
技术研发人员:周超,郭雅娟,黄伟,朱道华,姜海涛,郭静,李斌,王黎明,陈锦铭,
申请(专利权)人:国网江苏省电力公司电力科学研究院,国家电网公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。