基于混淆和水印的Java字节码安全技术的研究

基于混淆和水印的Java字节码安全技术的研究

论文摘要

Java程序由于平台无关性得以在Internet上迅速发布,但同时Java程序也面临着两个严重的安全问题:第一,侵权使用。Java编译器将每一个类编译成一个单独的class文件,这一特点让侵权使用Java class文件变的容易;第二,逆向工程。目前Java字节码的反编译技术已经很成熟,出现了许多Java反编译工具,这些工具能很好的把Java字节码反编译成Java源代码。为了保护Java字节码的安全,本文提出了一种新的保护模型:利用代码混淆和软件水印技术对Java字节码实施双重保护,从而保护了Java程序的知识产权。混淆Java字节码是在保持程序语义的前提下隐藏程序的内部信息,使得Java程序员很难读懂反编译后的Java源代码甚至于不能被正确的重新编译更甚者不能反编译。在Java字节码中嵌入水印就是将含有标识意义的信息嵌入到Java class文件中。也就是说利用混淆技术来阻止Java字节码的逆向工程,利用软件水印为Java class文件提供版权保护。研究了现有的代码混淆技术,在此基础上设计了词法转换算法、类的假重构算法,改进和完善了类拆分算法,总结了类型隐藏混淆的本质和与接口回调技术的区别,分析、细节化了三种能使反编译失败的控制流混淆算法,并针对程序切片严重威胁控制流混淆的问题找出了两种抵抗程序切片的混淆策略。研究了现有的一种针对Java字节码的水印算法。通过对水印算法的改进,提高了水印算法的鲁棒性、透明性。利用研究成果,设计并实现了名为JOCOW(Java Tool which combines obfuscation and Watermark technology)的系统,用户可使用该系统对Java class文件进行双重保护。保证Java字节码的绝对安全是不可能的,但是本文的研究可以给Java字节码提供版权保护和使Java字节码逆向工程价值减小。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究的背景
  • 1.2 混淆技术的研究现状
  • 1.3 软件水印技术的研究现状
  • 1.4 Java 字节码安全技术的研究现状
  • 1.5 研究的设想和预期结果
  • 1.6 本文结构及章节安排
  • 第二章 Java 字节码
  • 2.1 Java 字节码指令
  • 2.2 Java 字节码的验证
  • 2.3 Java 字节码的反编译
  • 2.4 Java class 文件的盗版
  • 2.5 一种新的 Java 保护模型
  • 本章小结
  • 第三章 代码混淆技术
  • 3.1 混淆变换的定义
  • 3.2 混淆变换的分类
  • 3.3 混淆变换的评价
  • 3.3.1 力度
  • 3.3.2 抵抗力
  • 3.3.3 执行代价
  • 3.3.4 质量
  • 3.4 布局混淆
  • 3.5 数据混淆
  • 3.5.1 抽象数据类型的混淆
  • 3.5.2 简单数据类型的混淆
  • 3.6 控制流混淆
  • 3.6.1 摧毁基本块混淆
  • 3.6.2 取代goto 混淆
  • 3.6.3 交叉loop 循换
  • 3.7 预防性混淆
  • 本章小结
  • 第四章 逆向工程技术-程序切片
  • 4.1 程序切片的概念
  • 4.2 程序切片的分类
  • 4.3 Java 程序的依赖
  • 4.4 Java 程序切片
  • 4.4.1 分层切片
  • 4.4.2 方法内切片
  • 4.5 程序切片构成的威胁
  • 4.6 抵抗程序切片的混淆策略
  • 本章小结
  • 第五章 水印算法
  • 5.1 水印的概述
  • 5.1.1 水印的类别
  • 5.1.2 水印需要满足的要求
  • 5.1.3 静态代码水印遭受的攻击
  • 5.2 水印算法描述
  • 5.2.1 水印的嵌入
  • 5.2.2 水印的提取
  • 5.3 水印算法的缺点
  • 本章小结
  • 第六章 系统设计与实现
  • 6.1 JOCOW 的设计
  • 6.1.1 JOCOW 用户接口
  • 6.1.2 JOCOW 的系统结构
  • 6.2 类文件的解析
  • 6.2.1 classFile 结构
  • 6.2.2 读取类文件
  • 6.3 算法实现
  • 6.3.1 词法转换算法
  • 6.3.2 类拆分算法
  • 6.3.3 类型隐藏算法
  • 6.3.4 类的假重构算法
  • 6.3.5 控制破坏混淆算法
  • 6.3.6 嵌入水印算法
  • 6.3.7 JOCOW 的实现算法
  • 6.4 保护策略的制定
  • 本章小结
  • 第七章 评价与比较
  • 7.1 混淆转换的正确性评价
  • 7.2 嵌入水印的正确性评价
  • 7.3 混淆转换的质量评价
  • 7.4 水印算法的质量评价
  • 7.5 Java 保护工具的比较
  • 本章小结
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表的学术论文
  • 致谢
  • 相关论文文献

    • [1].安海峰水印作品[J]. 歌海 2019(06)
    • [2].一种基于程序执行时间量化分析的软件水印方法[J]. 电子与信息学报 2020(08)
    • [3].云平台中软件水印的应用研究[J]. 电脑知识与技术 2020(20)
    • [4].简单删除文档中的尴尬水印[J]. 电脑知识与技术(经验技巧) 2019(09)
    • [5].一种抗任意角度旋转的全息水印算法[J]. 包装工程 2017(17)
    • [6].为您的图片打上精彩别致的水印[J]. 电脑知识与技术(经验技巧) 2016(03)
    • [7].基于决策树的水印鲁棒性研究[J]. 电脑编程技巧与维护 2015(04)
    • [8].软件水印及其研究现状概述[J]. 计算机应用与软件 2015(04)
    • [9].一键图片加水印[J]. 少年电脑世界 2020(Z2)
    • [10].网上就能为图片添加水印[J]. 电脑爱好者(普及版) 2009(09)
    • [11].在线添加图片水印[J]. 电脑迷 2008(06)
    • [12].柔情似水,印证我心 手把手教“妮”做水印[J]. 电脑爱好者 2009(10)
    • [13].图片水印轻松去除[J]. 电脑迷 2010(04)
    • [14].带你参观能驱赶“水印”的驱逐舰[J]. 电脑爱好者 2010(06)
    • [15].图片水印快去除[J]. 电脑迷 2010(12)
    • [16].点点鼠标 图片水印去无踪[J]. 电脑爱好者(普及版) 2010(11)
    • [17].图片去水印的“编外”技法[J]. 电脑爱好者 2016(07)
    • [18].江南水印(四首)[J]. 芙蓉 2015(05)
    • [19].《水印玻璃杯》[J]. 雪莲 2015(18)
    • [20].《水印玻璃杯》[J]. 雪莲 2015(17)
    • [21].一种基于代码混淆的静态软件水印的方案[J]. 河南科学 2013(12)
    • [22].水印诗画[J]. 诗歌月刊 2013(03)
    • [23].为图片巧加“隐形”水印[J]. 网友世界 2010(Z1)
    • [24].在线添加水印,改图网最给力[J]. 网友世界 2011(14)
    • [25].凭有水印图片,能找类似无水印图片[J]. 网友世界 2011(15)
    • [26].基于语义特征的电子海图权限水印研究[J]. 通信学报 2016(11)
    • [27].基于分层嵌入认证与恢复的自嵌入水印算法[J]. 计算机工程 2016(09)
    • [28].基于整数小波变换的可逆数据库水印[J]. 桂林理工大学学报 2017(01)
    • [29].云计算环境约束下的软件水印方案[J]. 网络与信息安全学报 2016(09)
    • [30].基于扩频调制和多水印的非对称水印算法[J]. 数据通信 2015(02)

    标签:;  ;  ;  ;  

    基于混淆和水印的Java字节码安全技术的研究
    下载Doc文档

    猜你喜欢