- 2
- 0
- 约3.3千字
- 约 6页
- 2017-06-13 发布于北京
- 举报
Java程序混淆技术综述
摘要:随着计算机网络的普及,大量计算机软件被开发出来,给人们的生活带来了很大的便利。同时,软件数据的机密性、可用性也成为了人们关注的焦点,其中主要的挑战就是软件的逆向工程及重组工程。本文主要针对基于Java的程序混淆技术在软件保护上的应用做了简单了论述。
关键词:Java程序;混淆技术;软件保护
当今社会人们对于计算机及其软件的依赖越来越大,软件的安全问题也日益凸显,已经开始影响到人们的正常使用。其主要表现在:软件被逆向工程破解,造成机密信息的泄露,这也是市面上盗版商或破解软件横行的原因;软件信息被重组修改,一些应用软件的密钥或其它机密信息被篡改会给销售商带来巨大经济损失。本文主要对Java程序混淆技术的分类、原理、应用做了一些简单的阐述。
一、Java程序混淆技术原理
(一)混淆技术定义
所谓程序混淆,就是在保持程序功能基本不变的前提下通过代码变换T将原始程序P混淆后变成新程序P1,混淆后的程序很难被反编码,这样就达到了保护软件的目的。其中要满足的条件有两个:P和P1在经过正常混淆转换终止后必须具有相同的输出;P输入出错终止或终止失败时,P1不一定终止。程序混淆的保护机制不是在于保护P1不受攻击,而是加大从P1恢复成P的时间,使攻击者攻击的代价超过其利益,恢复后的P可读性也非常差,以此来达到保护软件的作用。
(二)混淆技术分类
按混淆针对的对象不同,可以将混淆技术分为类内混淆和类间混淆两种。
类内混淆
类内混淆针对的对象是类文件的内部,如基于字节码的类内混淆主要的作用对象就是上述结构中的code字段。类内混淆的方式主要包括数据混淆、控制混淆、切片混淆及针对特定工具的混淆等。
数据混淆
数据混淆是将程序中的常量、变量、数据这些基本组成元素修改或重新组合以增大逆向工程的难度和改变程序的可读性。如分列变量混淆就是数据混淆中的一种常见形式,它是将程序中必要的数据类型或结构拆分成变量组合来隐藏原始数据达到保护程序的效果。数据混淆主要包括有变量存储、编码混淆,变量聚合混淆,顺序混淆,词法混淆等。
控制混淆
控制混淆的对象是程序传输的信息,对信息采取跟踪定位的实时监测,改变程序控制的复杂化从而抵御黑客袭击,保护程序。要注意的是,控制混淆并没有改变程序代码的计算方法。其类别主要有不可化简控制、并行化代码控制、聚合控制、顺序控制等技几种方式。
切片混淆
程序切片指的是对程序语句、判断表达式造成影响的程序集合。切片混淆技术就是使这些程序切片包含更多的变量值,变得更难被理解,从而达到程序保护的目的。
针对特定工具的混淆
这类混淆方式与前三种方式不同,其针对的对象是自动化的反混淆、反编译工具。其主要作用机制是在程序中形成数据依赖,增加反混淆、反编译工具的自动化分析难度,使反编译动作不能自动完成。伪造数据越复杂,反编译效果越好。4种方式可以综合使用提高鲁棒性,提高软件安全性。
(2)类间混淆
类间混淆针对的对象是多种类文件的综合体,主要分为合并、拆分、隐藏三种方式。
1、类合并
类合并是将类文件中包含的变量或函数进行合并,根据程序功能需要重命名这些合并后的变量或函数标识符。其合并原则有:?对标识符相同的变量或非构造函数,其新标识符不能重复?对类文件中标识符及参数都相同的构造函数,其标识符不能更改,但合并后需伪造一个参数加入其中函数中?对有顺序的类文件,合并中要增加一个布尔型的私有变量来区分标识符相同的函数。
2、类拆分
类拆分首先要判断类文件中程序的可拆分性,了解清楚类内部待拆分函数之间的继承和调用关系。确定拆分对象后,要保证拆分后的其中一个子类中完整继承了原始类的每个方法和变量,以使拆分前类的要素都能够实现。
3、类隐藏
类型隐藏的主要功能部位是接口,通过Java中的这些接口混淆类文件中的变量和方法,原来类的功能没有发生改变但是已经实现了这些接口,每个接口只随机含有一个待隐藏类中公开的方法的子集。为了加大自动反编译、混淆的困难,引入的接口可以设置同时为几个类运行。和类拆分一样,类隐藏的混淆方式对程序运行时间的影响都较小。
混淆技术的算法及其攻击模式
(一)混淆技术的算法
下面是几种典型的混淆技术算法:
标识符重命名混淆算法
这种算法的基本原理是利用一些简单无意义的名字代替字节码文件中的类名、接口名、字段名和方法名。这些无意义、随意性的标识符会打乱攻击者的反混淆、反编译动作。因为原始标识符的信息在重命名后已经完全消失,攻击者无法还原原始标识符。这样即使经过反编译,程序文件也不可读了。
重载无关联方法算法
这种混淆算法的依据是扩展转换和方法重载。扩展转换指的是经过编译转换后的新类型T中变量的范围比原来的类型S范围大,但二者具有相同处理方法。因此可以通过对相同的标识符重命名或是采用同一名字命名不同的参数类型、
您可能关注的文档
- HD05员工生日管理制度.doc
- HTCOneX(S720e)建议可删除系统自带程序列表.doc
- H型钢理论重量表.doc
- ICA国际对外汉语教师受热捧勤奋女生立志终生从教.doc
- IE浏览器打不开解决办法.doc
- inol管理手册.doc
- iPad使用入门三步走——《初级篇》.doc
- iPhone6好不好入手iPhone6的三个理由.doc
- IP信息查看工具ipconfig.doc
- ISO各类表格记录(全套).doc
- 八年级语文下册na文言文阅读专练(二).pptx
- 2025年福建莆田秀屿区南日镇卫生院第一轮编外人员招聘2人笔试历年题库附答案解析.docx
- 八年级语文下册nb文言文阅读专练(一) (2).pptx
- 八年级语文下册n2 回延安 (5).pptx
- 2025年福建莆田秀屿区南日镇卫生院第一轮编外人员招聘2人笔试历年题库附答案解析.docx
- 2025年福建莆田市荔城区东洋中学代课教师招聘1人笔试试题附答案解析.docx
- 八年级语文下册nc文言文阅读专练(一) (3).pptx
- 2025年福建莆田市莆投智泊科技有限公司职业经理人招聘2人笔试历年题库附答案解析.docx
- 八年级语文下册ne写作 (2).pptx
- 2025年福建莆田市荔城区东洋中学代课教师招聘1人笔试备考题库附答案解析.docx
最近下载
- 2026智慧燃气“人工智能+”白皮书.pdf VIP
- 中文版ISO527-1-2012..docx VIP
- 标准图集-02J331-地沟及盖板.pdf VIP
- 脚手架工程监理实施细则 (盘扣式脚手架).doc VIP
- 2025新能源集控中心规范化管理导则.docx VIP
- 2025年度民主生活会会前谈心谈话记录(党委(党组)书记与班子成员、班子成员之间、班子成员与分管部门主要负责同等).docx VIP
- (2025)中国头癣诊断和治疗指南.docx VIP
- 2025新能源风电场安全管理工作导则.docx
- 2025年生物质能CCUS技术报告.docx
- 2025年江苏城市职业学院单招笔试英语试题库含答案解析.docx VIP
原创力文档

文档评论(0)