计算机科学与技术专业毕业设计-PE格式程序加壳软件.doc

计算机科学与技术专业毕业设计-PE格式程序加壳软件.doc

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与技术专业毕业设计-PE格式程序加壳软件

仲恺农业工程学院 毕 业 设 计 PE格式程序加壳软件 姓 名 吴智文 院(系) 信息科学与技术学院 专业班级 计算机科学与技术091班 学 号 200910214117 指导教师 张垒 职 称 讲师 论文答辩日期 2013年5月18日 仲恺农业工程学院教务处制 学生承诺书 本人声明所呈交的论文《软件加壳工具》是本人在导师的指导下进行的,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,不包含本人或其他用途使用过的成果。相关文献的引用已在论文中作了明确的说明。申请学位论文与资料若有不实之处,本人承担一切相关责任。特此声明。                 论文作者签名:                     年  月  日 摘 要 加壳是保护文件的常用手段,其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。 加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件破解。 关键词:加壳 软件保护 软件破解 目 录 1 绪论 1 1.1 加壳程序研究的背景 1 1.2 软件保护现状与发展趋势 1 1.3 研究的目的和意义 2 2 软件保护 3 2.1 软件版权现状 3 2.2 常见软件保护方法 3 2.2.1 序列号方式 3 2.2.2 警告(NAG)窗口 4 2.2.3 时间限制 4 2.2.4 Key File保护 4 2.2.5 功能限制的程序 4 2.2.6 CD-check 4 3 软件加壳脱壳介绍 5 3.1 什么是壳 5 3.2 壳的种类 6 3.2.1 压缩壳 6 3.2.2 加密壳 6 3.3 脱壳技术 6 4 PE文件结构 7 4.1 简介 7 4.2 PE文件结构布局 7 4.3 重要的PE结构 8 4.3.1 输入表 8 (图4.2) 10 4.3.2 输出表 11 5 常用逆向分析技术介绍 13 5.1 动态分析技术 13 5.2 静态分析技术 14 5.3 结构化异常处理 14 6 加壳程序的编写 17 6.1 壳的一般装载过程 17 6.2 PE文件数据读入,处理 19 6.2.1 判断PE文件 19 6.2.2,装入内存,初始化数据 19 6.3 保存输入表 20 6.3.1 输入表与脱壳 20 6.4 原程序输入表的处理 21 6.5 增加壳所需的节 22 6.6 写入shellcode代码 24 6.7 写入外壳所需数据 24 7 shellcode的编写 26 7.1 什么是外壳 26 7.2 内联汇编 27 7.2.1 简介 27 7.2.2 外壳与内联汇编 28 7.3 shellcode中变量存储 29 7.3.1 局部变量与全局变量 29 7.3.2 shellcode中的变量 31 7.3.3 shellcode重定位 32 7.3.4 字符串处理 33 7.4 函数调用约定 36 7.4.1 函数调用 36 7.4.1 __cdecl调用约定 37 7.4.2 __stdcall调用约定 37 7.4.3 统一一种调用约定 37 7.5 shellcode的提取 39 7.6 取得API函数地址 44 7.6.1 如何取得API 44 7.6.2 取得Kernel32基址 45 7.6.2 取得GetProcAddress函数地址 46 7.7 恢复输入表 49 7.8 重定位 53 7.9 转交控制权 54 8 反调试技术的加入 56 8.1 反调试 56 总 结 62 参考文献 63 英文摘要 64 致 谢 65 1 绪论 1.1 加壳程序研究的背景 在自然界中,我想大家对壳这东西应该都不会陌生了。自然界中植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。 从功能上抽象,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档