- 3
- 0
- 约3.39千字
- 约 8页
- 2018-08-11 发布于福建
- 举报
Java程序混淆技术研究进展
Java程序混淆技术研究进展
摘要:随着计算机技术的快速发展,计算机软件的安全存在着一定的威胁,包括软件的攻击和重组。Java程序混淆技术是一种特殊的编码技术,可以抵制逆向工程和重组工程,保护软件知识产权。
关键词:Java程序;混淆技术;软件;编码
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)35-8414-02
Java程序可以在平台上迅速传播,Java语言很容易被反编码。Java程序混淆也就是在不改变原义的情况下,对Java程序程序进行混淆,混淆后的程序很难被反编码,或者发编码后的程序可读性非常差,就可以达到保护软件的目的。Java程序混淆技术被广泛地用于软件知识产权领域。
1 Java程序混淆技术的原理
混淆技术[1]实际上就是代码变换技术,通过变换,将原始程序P变换为新的程序P1,它们的功能相似或者相近,代码安全性非常高。
如果原始程序P,经过混淆变换T,变换为新的程序P1,也就是P1=T(P),这个软件混淆变化必须满足以下条件:如果P结束,那么P1也必须结束,并且输出结果与P相同;如果P无法结束,或者以错误状态结束,那么P1不一定结束;对于P和P1的计算任务,P1比P消耗的时间长,而且保持在一个特定的范围内;攻击者如果想要将P1恢复成P,那么所需要消耗的时间远远大于将P转换为P1的时间。
2 Java程序混淆技术的分类
2.1 数据混淆
数据混淆[2]是指对程序的组成元素,如常量、变量和数据结构进行混淆变换,增大攻击者反编码的难度。
1)分裂和合并变量混淆:分裂变量混淆指的是在保持程序原义的前提下,将一些比较简单的数据结构和数据类型分解成一些变量的组合,就可以达到隐藏原始程序的效果。
合并变量混淆指的是将几个数值变量或者整型数据合并成一个变量或数据,从而达到隐藏原始数据的目的。
2)数组重构混淆:数组是程序中的基本数据结构,对数组进行重构混淆,包括数组分裂变换、数组合并变换、数组平滑变换以及数组折叠变换。数组分裂变换指的是将一个数组分裂成两个或者两个以上的数组;数组合并变换是指将两个或两个以上的数组合并为一个数组;数组平滑变换是指减少数组的维数;数组折叠变换是指增加数组的维数。
3)将静态数据转换为与程序相关的数据:静态数据,特别是字符串数据,包含大量信息。通过混淆变换,可以将静态数据转换为一个函数或者一段子程序,在执行程序的时候,可以通过程序调用生成相应的字符串,从而增加程序的复杂程度。
2.2 词法混淆
词法混淆是变换函数和变量的名称,违背Java见名知义的软件原则。词法混淆是根据Java虚拟机规范中的类文件结构的有关规定,混淆常量池中存储的类、字段、方法以及变量等名称的“CONSTANT_Utf8_info”类型数据。词法混淆主要有三种方法:用名称相同但是类型不同的字段进行替换;有意义的标识符用没有任何意义的字符来替换;用Java虚拟机不限制但是Java语言禁止的字符或者字符串来代替原始的字符或者字符串。词法变化具有单向性,不需要额外的执行代价,所以程序的复杂几乎不受影响,在实践中应用比较广泛。
词法混淆还包括移除和改名。移除是指将程序中的注释、调试信息等格式化信息删除掉,这种方法具有单向性,一旦混淆无法恢复,操作简单,但是强度很差。改名是指将程序中的常量名、变量名等标识符改为没有意义的标识符。
2.3 控制混淆
1)循环条件插入变换:通过不透明谓词把一个循环的终止条件变得更加复杂。
2)分支插入变换:对于一串语句,加入一个控制条件,增加程序的复杂程度。可以加一个不透明谓词,构造一个不会执行的分支,或者另两个分支上的语句都和原语句相同,从而影响后面语句的执行。
3)将可制约的控制流转换为不可制约的控制流:利用不透明谓词,加入一个假分支,将一个循环变换为多个循环,增加控制流图的翻译难度。
4)并行化代码:并行程序比串行程序更复杂,难以被分析。使用并行技术,可以构造不透明谓词,混淆程序的控制流。可以将串行程序并行化,还可以在程序中添加代码,增加程序的理解难度。
5)控制顺序混淆:一般情况下,Java类文件包含了很多控制信息,对这些控制转换信息进行掩藏可以通过打乱表达式、方法的顺序,增加程序的理解难度。
2.4 类结构混淆
1)类合并:类合并[3]指的是将两个或两个以上的类合并成一个类,包括各个类所包含的变量和函数,从而破坏系统的类,隐藏系统的整体设计。根据重命名的变量和方法,如果合并的类中有相同标识符的函数和变量,那么就将它们改为不重复的变量或函数;如果合并的类中,构造函数的标识符和参数都是相同的,那么就增加一个伪造的参数;如果
您可能关注的文档
- IPSec VPN技术在一校两地视频会议系统中应用――以南京铁道职业技术学院为例.doc
- IPSec VPN技术在企业中应用.doc
- IPSec VPN在12331食品药品投诉举报系统中应用.doc
- IPSec与MPLS实现VPN技术探讨.doc
- IPSec与NAT兼容性问题研究.doc
- IPSec和IP Filter在路由器中研究与应用.doc
- IPSec封装模式在不同场景下应用.doc
- IPSEmpress 2全瓷冠在四环素牙美容修复中疗效观察.doc
- iPS细胞研究进展.doc
- IPTG诱导剂对C型产气荚膜梭菌β2毒素基因表达影响.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- GB50424-2015 油气输送管道穿越工程施工规范.docx VIP
- 2025至2030果聚糖行业项目调研及市场前景预测评估报告.docx
- 初中语文文学常识最全汇总.docx
- 初中语文228条文学常识总汇.docx VIP
- BS EN 15551 2017 国外国际标准.pdf VIP
- 鲁教版(五四学制)(2024)六年级上册地理第二章 地图 单元测试卷(含答案).docx VIP
- 六年级上册数学量率对应问题专项.docx VIP
- 松下SA-PM18组合音响中文维修手册.pdf VIP
- 六年级上册数学复习练习:寻找单位“1”和列出等量关系式专项练习.docx VIP
- DB3705_T 11-2023 野大豆耐盐性鉴定技术规程.docx VIP
原创力文档

文档评论(0)