Y1404796
分类号:
UDC:
TP309
代号:10150密级:学号:20052213
戈建交彰挚
硕士学位论文
基于混淆和水印的
Java字节码
安全技术的研究
StudyofJavaBytecodeSafetyTechnology
Base
on
ObfuscationandWatermark
学生:导师及职称:学科门类:专业名称:研究方向:申请学位级别:论文答辩日期:学位授予单位:
战晓娟王德厂’副教授工学
计算机应用技术信息安全硕士
2007年12月25日
大连交通大学
摘要
摘
要
Java
程序由于平台无关性得以在Intemet上迅速发布,但同时Java程序也面临着两个严重的安全
问题:第一,侵权使用。Java编译器将每一个类编译成一个单独的class文件,这一特点让侵权使用Javaclass文件变的容易;第二,逆向工程。目前Java字节码的反编译技术已经很成熟,出现了许多Java反编译工具,这些工具能很好的把Java
字节码反编译成Java
源代码。
为了保护Java字节码的安全,本文提出了一种新的保护模型:利用代码混淆和
软件水印技术对Java字节码实施双重保护,从而保护了Java程序的知识产权。混淆Java字节码是在保持程序语义的前提下隐藏程序的内部信息,使得Java程序员很难读懂反编译后的Java源代码甚至于不能被正确的重新编译更甚者不能反编译。在Java字节码中嵌入水印就是将含有标识意义的信息嵌入到Javaclass文件中。也就是说利用混淆技术来阻止Java字节码的逆向工程,利用软件水印为Javaclass文件提供
版权保护。研究了现有的代码混淆技术,在此基础上
设计了词法转换算法、类的假重构算法,改进和完善了类拆分算法,总结了类型隐藏混淆的本质和与接口回调技术的区别,分析、细节化了三种能使反编译失败的控制流混淆算法,并针对程序切片严重威胁控制流混淆的问题找出了两种抵抗程序切片的混淆策略。研究了现有的一种针对Java字节码的水印算法。通过对水印算法的改进,提高了水印算法的鲁棒性、透明性。利用研究成果,设计并实现了名为JOCOW(Java
andToolwhichcombinesobfuscation
Watermarktechnology)的
系统,用户可使用该系统对Javaclass文件进行双重保护。保证Java字节码的绝对安全是不可能的,但是本文的研究可以给Java字节码提供
版权保护和使Java字节码逆向工程价值减小。关键词:Java字节码;混淆;软件水印;程序切片
大连交通大学工学硕士学位论文
Abstract
Javaprogramshavebeenpopularizedintheinternetbecauseofplatformdependence
characteristic.Meanwhilejava
makeseasyforjavausing
programs
java
alsohavetwoserioussafetyproblems:Thefirst
one
isusinginfringement.Thefactthat