软件迷惑技术研究

软件迷惑技术研究

论文摘要

软件迷惑技术是指通过对代码进行各种形式的语义等效变换,以去除有助于程序理解的信息,使其变得尽可能模糊、晦涩,从而达到防止软件盗版、保护知识产权目的的一种防逆向工程技术。该技术在保护重要数据和算法、延缓软件破解时间等方面具有重要的应用价值和广泛的应用前景。本文的主要研究内容包括:(1)迷惑理论研究:给出了两种特殊的可被迷惑的程序类,软件算法迷惑器和框架迷惑器的相关定义,以及不存在通用的算法与框架迷惑器的证明;(2)数据编码抵御能力分析:变量编码是一种数据迷惑技术,从本质意义上来讲是一种散射运算。分析了线性编码、混合编码、仿射编码、以及异或编码的抵御能力;(3)基于Java语言的调用流迷惑技术:通过对Java方法的签名(参数类型、数量、返回值类型)进行统一封装,将不同类中的方法交叉合并到某个接口的扩展子类方法当中,引入对象别名机制,阻止对程序进行静态分析;(4) Java字节码指令迷惑技术:将字节码指令按照堆栈操作方式分组,同组内的指令间构成一对多的映射关系,以代码自定义属性的方式将映射规则存储到class文件中。在虚拟机内部嵌入解译器,位于字节码验证器的后端,解译器根据映射规则还原指令的运行时语义。

论文目录

  • 提要
  • 第一章 绪论
  • 1.1 研究背景
  • 1.2 软件保护技术分类
  • 1.2.1 防盗版技术
  • 1.2.2 防篡改技术
  • 1.2.3 防逆向工程技术
  • 1.3 软件迷惑技术
  • 1.3.1 软件迷惑的分类
  • 1.3.2 迷惑质量的度量方法
  • 1.3.3 软件迷惑的潜在应用
  • 1.4 本文工作
  • 第二章 迷惑理论
  • 2.1 符号说明
  • 2.2 通用迷惑器的形式定义与存在性
  • 2.3 特殊函数的可迷惑性
  • 2.4 白盒DES
  • 2.5 软件保护迷惑
  • 2.5.1 算法迷惑器
  • 2.5.2 框架迷惑器
  • 2.6 小结
  • 第三章 变量编码抵御能力分析
  • 3.1 引言
  • 3.2 变量编码的概念
  • 3.3 线性编码
  • 3.4 剩余编码
  • 3.5 混合编码
  • 3.6 仿射编码
  • 3.7 异或编码
  • 3.8 数据编码的抵御能力
  • 3.8.1 编码的抵御能力度量
  • 3.8.2 线性编码的抵御能力
  • 3.8.3 混合编码的抵御能力
  • 3.8.4 仿射编码的抵御能力
  • 3.8.5 异或编码的抵御能力
  • 3.9 小结
  • 第四章 Java程序调用流迷惑技术
  • 4.1 Java语言与虚拟机
  • 4.1.1 指令集合
  • 4.1.2 Java虚拟机
  • 4.1.3 字节码验证器
  • 4.2 Java程序迷惑技术
  • 4.3 调用流迷惑技术
  • 4.3.1 基本思想
  • 4.3.2 调用形式统一
  • 4.3.3 对象池
  • 4.4 迷惑增强
  • 4.5 实验结果及分析
  • 4.6 小结
  • 第五章 Java指令迷惑技术
  • 5.1 引言
  • 5.2 迷惑解译框架
  • 5.2.1 概述
  • 5.2.2 设计类型
  • 5.2.3 置换单元
  • 5.2.4 程序转换
  • 5.3 框架实现
  • 5.3.1 辅助输入
  • 5.3.2 指令映射
  • 5.4 实验结果及分析
  • 5.4.1 实验结果
  • 5.4.2 安全分析
  • 5.5 小结
  • 第六章 结束语
  • 6.1 结论
  • 6.2 研究展望
  • 参考文献
  • 攻读博士学位期间发表的论文及其他成果
  • 致谢
  • 中文摘要
  • Abstract
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    软件迷惑技术研究
    下载Doc文档

    猜你喜欢