学位论文 > 优秀研究生学位论文题录展示

基于IAT加密的加壳程序研究

作 者: 秦杰
导 师: 任立勇
学 校: 电子科技大学
专 业: 计算机系统结构
关键词: 软件保护  反调试 多态变形
分类号: TP311.52
类 型: 硕士论文
年 份: 2009年
下 载: 179次
引 用: 0次
阅 读: 论文下载
 

内容摘要


软件保护是软件开发中一个不可忽视的环节,由于软件发布后要面对众多逆向分析人员的研究,给要发布的软件加一层现在几乎成了保护软件的一个必要的步骤,加壳软件的目的就是为软件穿上一层“盔甲”以阻碍对其逆向分析,随着各种逆向分析工具和技术的不断发展,壳对抗逆向分析的能力就直接反映出了它的保护强度。现有的壳主要是用于保护Win32环境下的可执行程序、动态链接库、驱动程序等PE格式的文件,由于PE文件头中包含了很多重要的信息,为了尽量减少暴露在逆向分析人员面前的信息,加壳程序通常需要生成自己的PE文件头,并模拟操作系统对被保护的程序进行加载。逆向分析人员在对加壳保护后的程序进行分析时,会采用各种动态、静态的逆向分析工具,壳里就需要加入一些反逆向的手段来给他们增加一定的难度。壳除了对软件进行保护外,对自身也需要隐藏,由于常见的壳识别工具采用的是特征码检测的方式,所以在壳中加入多态变形技术来对抗特征码检测也是加壳程序编写过程中的一个重要步骤。本文首先论述了软件保护技术的发展及对软件进行加壳的重要性,阐明了本研究课题的特点及实用价值;然后,对加壳程序开发所需的基础知识及关键技术需要的理论进行了全面的介绍;壳的核心技术是反调试,它直接影响到壳的保护强度,强度高的壳通常是因为采用了一些未公开的私有的反调试手段,本文接下来通过逆向跟踪几款知名的保护壳后,揭露了它们所用的反调试手段,对它们各自的优缺点进行了总结并给出了一些建议,在壳的IAT加密部分提出了完全模拟系统API的思想;最后,通过对BPE32多态变形引擎源码的详细研究,构建出一个能为壳所用的微型变形引擎框架并实现了相关部分代码,并对对抗多态变形常用的启发式代码仿真检测技术进行了介绍,总结了相应的突破方法和部分代码。本文分析知名壳的反调试后整理出来的函数代码,可以直接用于加壳程序开发,在实际应用中可以根据具体情况灵活选择运用;实现的多态变形引擎框架经过扩充后也可以用在实际开发中。

全文目录


摘要  4-5
ABSTRACT  5-9
第一章 引言  9-17
  1.1 计算机软件保护技术的发展  9-13
    1.1.1 基于硬件的保护方式  9-10
    1.1.2 基于软件的保护方式  10-13
  1.2 加程序的现状及发展  13-15
  1.3 本文主要研究工作  15-17
第二章 加壳程序基础知识概述  17-31
  2.1 认识壳  17-19
  2.2 PE 文件格式  19-25
    2.2.1 PE 文件格式概览  19-21
    2.2.2 PE 文件的节  21
    2.2.3 相对虚拟地址  21-22
    2.2.4 数据目录  22
    2.2.5 导入函数  22
    2.2.6 导出表  22-23
    2.2.7 导入表  23-24
    2.2.8 基址重定位  24-25
    2.2.9 调试目录  25
    2.2.10 TLS 初始化  25
  2.3 PE 文件的加载过程  25-26
  2.4 结构化异常处理  26-30
    2.4.1 SEH 处理流程  26-27
    2.4.2 关于 SEH 的嵌套和堆栈展开  27-28
    2.4.3 默认SEH 处理  28
    2.4.4 SEH 的应用  28-30
  本章小结  30-31
第三章 加壳程序中的反调试技术  31-59
  3.1 简介  31
  3.2 调试器检测技术  31-47
    3.2.1 进程环境块(PEB)中的调试标志  32-33
    3.2.2 进程环境块(PEB)中的堆栈标志  33-34
    3.2.3 调试器端口检测  34-35
    3.2.4 调试器中断检测  35-36
    3.2.5 时间间隔检测  36-37
    3.2.6 调试器优先权检测  37-38
    3.2.7 检测父进程  38-39
    3.2.8 调试器对象检测  39-40
    3.2.9 调试器窗口查找  40-41
    3.2.10 调试器进程名查找  41
    3.2.11 调试器设备名称查找  41-42
    3.2.12 OLLYDBG 的页保护检测  42-43
    3.2.13 软断点检测  43-44
    3.2.14 硬断点检测  44-46
    3.2.15 完整性校验  46-47
    3.2.16 INT 2D 中断检测  47
  3.3 调试器攻击技术  47-52
    3.3.1 向调试器抛出异常  47-48
    3.3.2 输入锁定  48-49
    3.3.3 向调试器隐藏线程  49-50
    3.3.4 设置UNHANDLED EXCEPTION FILTER  50-51
    3.3.5 OLLYDBG 格式化字符串漏洞  51-52
  3.4 其他常用技术  52-58
    3.4.1 进程注入  52-53
    3.4.2 双进程  53
    3.4.3 TLS 回调函数  53-54
    3.4.4 入口点偷代码  54-56
    3.4.5 IAT 加密  56-57
    3.4.6 多线程  57
    3.4.7 虚拟机  57-58
  本章小结  58-59
第四章 多态变形技术及对抗启发式代码仿真检测技术  59-81
  4.1 多态变形技术  59-69
    4.1.1 介绍  59-61
    4.1.2 随机寄存器选择器  61-63
    4.1.3 随机值选择器  63-64
    4.1.4 译码器生成器  64-67
    4.1.5 垃圾指令生成器  67-69
  4.2 对抗启发式代码仿真检测技术  69-79
    4.2.1 介绍  70-71
    4.2.2 通过指令预取反跟踪技术  71-73
    4.2.3 通过FPU 的手段  73-74
    4.2.4 通过INT 1 的手段  74-75
    4.2.5 通过INT 6 的手段  75-76
    4.2.6 初始化寄存器方式  76-77
    4.2.7 无限循环  77-78
    4.2.8 利用SEH 方式  78
    4.2.9 多线程解密  78
    4.2.10 分析执行逻辑方式  78-79
  本章小结  79-81
第五章 结论  81-82
致谢  82-83
参考文献  83-86
在校期间研究成果  86-87

相似论文

  1. 水热法制备氧化物中空微球,TB383.4
  2. 壳聚糖及其衍生物脱除牡蛎中麻痹性贝类毒素的研究,TS254.4
  3. 不同原料烟熏液的制备、精制及灌肠液熏工艺的研究,TS251.65
  4. 牡蛎壳海卤缓释氮肥对辣椒和香菜生长影响的研究,S145.6
  5. 壳聚糖季铵盐金属配合物的热稳定性研究,O634
  6. 远海梭子蟹及其软壳蟹、抱卵蟹的保存与运输研究,S968.252
  7. 多壁碳纳米管负载Au@Pt、Au@Pd核壳结构催化剂的制备及电化学性能研究,O643.36
  8. 湛江北部湾深水海域马氏珠母贝四种壳色选育系F5的生长速度、生长模型及其遗传多样性的SSR分析,S968.31
  9. 聚乙烯亚胺修饰糖脂共聚物介导基因治疗研究,R450
  10. 生物医用OCS/PLLA复合膜的制备与性能表征,R318.08
  11. 牡蛎中重金属镉、铅的富集及脱除方法的研究,X174
  12. 壳聚糖衍生物的合成及其吸附性能研究,TS254.9
  13. 凡纳滨对虾加工副产物制备甲壳素、壳聚糖改良工艺的研究,TS254.9
  14. 澳洲坚果干燥特性及力学特性研究,S664.9
  15. 温度、盐度、溶解氧、氨氮、亚硝酸盐氮对拟穴青蟹蜕壳的影响,S917.4
  16. 核桃破壳力试验及核桃剥壳机主要部件虚拟样机设计,S226.4
  17. 黄瓜根结线虫病的生物防治及其生态有机药肥研制,S436.421
  18. 华贵栉孔扇贝(Chlamys nobilis)不同壳色选育系的建立及其生长发育研究,S968.3
  19. 壳聚糖基温敏性复合水凝胶的制备及性能研究,R943
  20. 酸溶液对壳聚糖/羟基磷灰石复合材料的结构与性能的影响研究,R318.08
  21. 壳聚糖基复合纳米涂膜材料及对鸡蛋涂膜保鲜包装效果的研究,TS253.2

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com