用于Java软件保护的代码混淆技术研究与实现

用于Java软件保护的代码混淆技术研究与实现

论文摘要

由于Java程序很容易被反编译和逆向工程,使得保护知识产权和保密信息在不信任环境中不被窃取变得很困难,因此迫切需要有效的保护Java软件的方法。而目前最实用的解决方法就是对Java程序进行混淆。代码混淆技术就是在不改变语义的情况下,使得混淆后的程序很难被反编译工具破解或者破解后的程序可读性很差,从而达到保护Java软件的目的。目前,对代码混淆技术的研究主要集中在控制流混淆和数据流混淆上,这两种混淆技术在提高程序的复杂度和抗攻击能力的同时,增加了程序额外的执行开销,这种执行开销有时甚至会导致程序不能正常运行。针对上面的情况,本文以保护Java软件、提高程序复杂度和抗攻击能力、同时不增加程序额外的执行开销为目的,深入研究了标识符重命名混淆技术,并设计实现了一种Java软件混淆工具。本文主要工作如下:1.研究Java类文件、代码混淆技术及其研究现状,对现有的混淆技术进行详细的分类和比较,并在此基础之上针对控制流混淆和数据流混淆的不足,提出四种标识符重命名混淆算法,包括滥用标识符、重载无关联方法、非法标识符替换以及重写静态方法,并分析了四种算法对程序执行开销的影响。2.设计并实现一种Java软件混淆工具——JIRO(Java Identifier RenamingObfuscator),该混淆工具主要包括代码优化和代码混淆两种功能,其中代码混淆功能模块所使用的关键技术是本文提出的四种标识符重命名混淆算法。3.在JIRO上做大量实验,并结合实验从混淆变换的正确性、混淆变换的强度和混淆变换耐受性三个方面对JIRO的功能进行分析。根据统计得到的实验数据,分析JIRO对程序执行开销的影响,并对JIRO进行测试和对其应用情况进行分析。论文工作表明,基于标识符重命名混淆技术的混淆工具JIRO,具有很好的混淆效果,同时没有增加程序的额外执行开销,能够有效的保护Java软件。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 引言
  • 1.1 研究背景及意义
  • 1.2 国内外混淆技术研究现状
  • 1.3 本文研究内容
  • 1.4 论文章节安排
  • 第二章 Java类文件格式和类文件检验机制
  • 2.1 CLASS文件结构
  • 2.1.1 ClassFile结构
  • 2.1.2 常量池
  • 2.1.3 字段
  • 2.1.4 方法
  • 2.1.5 属性
  • 2.2 CLASS文件检验机制
  • 2.2.1 字节码检验器
  • 2.2.2 Class文件的检验过程
  • 2.3 本章小结
  • 第三章 代码混淆技术
  • 3.1 代码混淆定义及应用
  • 3.1.1 混淆定义
  • 3.1.2 混淆应用
  • 3.2 混淆的分类
  • 3.2.1 外形混淆
  • 3.2.2 数据混淆
  • 3.2.3 控制混淆
  • 3.2.4 预防混淆
  • 3.3 对四种混淆技术的简单分析
  • 3.4 本章小结
  • 第四章 标识符重命名混淆算法
  • 4.1 重命名目的
  • 4.2 重命名范围
  • 4.3 标识符重命名混淆算法
  • 4.3.1 滥用标识符算法
  • 4.3.2 重载无关联方法算法
  • 4.3.3 非法标识符替换算法
  • 4.3.4 重写静态方法算法
  • 4.4 算法分析
  • 4.5 本章小结
  • 第五章 混淆器JIRO设计与实现
  • 5.1 设计目标
  • 5.2 JIRO系统结构
  • 5.3 JIRO主要工作流程
  • 5.4 主要模块设计与实现
  • 5.4.1 开发环境
  • 5.4.2 用户图形界面设计
  • 5.4.3 执行控制子系统
  • 5.4.4 配置信息采集解析子系统
  • 5.4.5 代码优化子系统
  • 5.4.6 标识符重命名混淆子系统
  • 5.4.7 I/O操作子系统
  • 5.4.8 class文件操作子系统
  • 5.5 本章小结
  • 第六章 JIRO功能测试和性能分析
  • 6.1 JIRO功能分析与测试
  • 6.1.1 混淆变换的正确性分析与测试
  • 6.1.2 混淆变换强度分析与测试
  • 6.1.3 混淆变换耐受性分析与测试
  • 6.2 JIRO对程序执行开销影响分析
  • 6.3 JIRO测试与应用情况分析
  • 6.3.1 JIRO测试
  • 6.3.2 JIRO应用情况分析
  • 6.4 本章小结
  • 总结与展望
  • 1.总结
  • 2.展望
  • 参考文献
  • 附录
  • 攻读硕士期间取得的学术成果
  • 致谢
  • 相关论文文献

    • [1].《Java程序设计》教材二次开发的多元化策略研究[J]. 电脑知识与技术 2019(32)
    • [2].Java中的正则表达式应用探讨[J]. 电脑知识与技术 2019(32)
    • [3].Java随机文件读写操作探讨[J]. 南方农机 2019(24)
    • [4].Java技术在图像处理中的应用探究[J]. 信息与电脑(理论版) 2019(24)
    • [5].基于专业认证的Java课程建设[J]. 计算机教育 2020(02)
    • [6].“Java程序设计”课程教学改革与作业批改系统的构建[J]. 教育教学论坛 2020(03)
    • [7].论如何在应用型本科高校培养Java全栈工程师[J]. 电脑与电信 2019(11)
    • [8].Java程序设计项目化教学的研究与实践[J]. 电脑知识与技术 2020(02)
    • [9].基于JAVA语言的异常处理探讨分析[J]. 自动化技术与应用 2020(02)
    • [10].Java程序设计立体化教材建设的思考[J]. 计算机产品与流通 2020(03)
    • [11].基于计算机软件开发的Java编程语言分析[J]. 信息与电脑(理论版) 2020(02)
    • [12].基于Java的购物网站设计与开发[J]. 农家参谋 2020(08)
    • [13].项目化教学在《Java程序设计》教学中的应用研究[J]. 皖南医学院学报 2020(01)
    • [14].基于Java的在线考试系统设计与实现[J]. 中国教育技术装备 2019(24)
    • [15].JAVA编程技术在计算机软件开发中的优势与应用[J]. 信息记录材料 2020(03)
    • [16].浅谈基于JAVA的俄罗斯方块游戏的设计与实现[J]. 农家参谋 2020(13)
    • [17].基于目标管理的Java面向对象程序设计在线教学[J]. 计算机教育 2020(08)
    • [18].混合学习在中职Java课程中的应用探讨[J]. 计算机产品与流通 2020(10)
    • [19].计算机软件Java编程特点及其技术分析[J]. 计算机产品与流通 2020(10)
    • [20].基于Java的企业进销存管理系统的设计与开发[J]. 信息通信 2020(09)
    • [21].Java编程语言在大数据开发中的应用[J]. 黑龙江科学 2020(22)
    • [22].Java类整合课程在线教学的研究[J]. 信息系统工程 2020(09)
    • [23].大学生初学Java多线程思路的反思与优化[J]. 中国新通信 2020(19)
    • [24].基于JAVA的社团管理后台系统设计[J]. 中阿科技论坛(中英文) 2020(09)
    • [25].基于Java语言对10种经典排序算法的研究[J]. 电脑知识与技术 2020(25)
    • [26].浅析《Java程序设计》课程项目化[J]. 信息系统工程 2019(11)
    • [27].基于Java技术的数字图像处理系统的开发[J]. 电脑知识与技术 2019(28)
    • [28].基于Java语言的排课系统的设计与实现[J]. 科技风 2017(01)
    • [29].《Java程序设计》与《软件工程》综合教学改革初探[J]. 现代计算机(专业版) 2016(33)
    • [30].“项目+任务”教学法在高职《Java面向对象程序设计》教学中的应用——以佛山职业技术学院计算机应用技术专业为例[J]. 教育现代化 2016(37)

    标签:;  ;  ;  ;  

    用于Java软件保护的代码混淆技术研究与实现
    下载Doc文档

    猜你喜欢