计算机安全技术第3章.ppt_第1页
计算机安全技术第3章.ppt_第2页
计算机安全技术第3章.ppt_第3页
计算机安全技术第3章.ppt_第4页
计算机安全技术第3章.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 计算机软件安全技术 3 1软件安全技术概述 计算机软件安全主要是指保证所有计算机程序和文档资料免遭破坏 非法拷贝 非法使用而采用的技术和方法 其内容包括如下五个方面 1 软件的自身安全 2 软件的存储安全 3 软件的通信安全 4 软件的使用安全 5 软件的运行安全影响计算机软件安全的因素很多 要确保其安全 必须采取两方面的措施 一是非技术性措施 如制定有关法律 法规 加强各方面的管理等 二是技术性措施 如采用软件安全的各种防拷贝加密技术 防静态分析 防动态跟踪技术等 3 2软件分析技术 在进行软件的破解 解密工作中 一个首要的问题是对软件进行分析 这些软件都是机器代码程序 对于它们分析必须使用静态或动态调试工具 分析跟踪其汇编代码 3 2 1静态分析技术所谓静态分析即从反汇编出来的程序清单上分析 从提示信息入手进行分析 如果我们对静态反汇编出来的程序清单进行阅读 就可以从中找到有用的提示信息 了解软件的编程思路 以便顺利破解 常用的静态分析工具有W32DASM IDA和HIEW等 W32DASM可以方便的反汇编程序 它能静态分析程序流程 也可动态分析程序 在其新版本中 还加强了对中文字符串的提取 W32DASM的界面如下图所示 3 2软件分析技术 3 2 2动态分析技术所谓动态分析是指利用动态分析工具一步一步地单步执行软件 为了有效地进行动态跟踪分析 需要进行以下两个步骤 第一步 对软件进行粗跟踪 第二步 对关键部分进行细跟踪 常用的动态分析工具有Soft ICE和Trw2000 Trw2000完全兼容Soft ICE的各条指令 并且专门针对软件破解进行了优化 在Windows9x下跟踪调试功能更强 可以设置各种断点 并且断点种类更多 它可以像一些脱壳工具一样完成对加密外壳的去除 自动生成EXE文件 它还有在DOS下的版本 名为TR 下图为Trw2000界面 3 3常用的软件保护技术 常见的软件保护技术有序列号方式 时间限制 警告窗口 KeyFile保护 功能限制 CD check等 下面对它们分别做出简要介绍 3 3 1序列号方式3 3 2时间限制3 3 3Nag窗口3 3 4KeyFile保护3 3 5功能限制的程序3 3 6CD check 3 4反跟踪技术 反跟踪技术是磁盘加密技术中最能显示技术水平的部分 一个有效的反跟踪技术应该具有以下三个特征 1 重要程序段是不可跳越和修改的 2 不通过加密系统的译码算法 密码不可破译 3 加密系统是不可动态跟踪执行的 3 4反跟踪技术 下面我们以DOS中功能强大的动态跟踪调试软件DEBUG为例 对常用的反跟踪技术作出说明 3 4 1抑制跟踪中断3 4 2封锁键盘输入3 4 3设置显示器的显示性能3 4 4检测跟踪法3 4 5破坏中断向量表3 4 6设置堆栈指针法3 4 7对程序分块加密执行3 4 8对程序段进行校验3 4 9迷惑 拖垮解密者3 4 10指令流队列法3 4 11逆指令流法3 4 12混合编程法3 4 13自编软中断13技术 3 5软件加壳与脱壳 3 5 1加壳计算机软件中的 壳 是一段专门负责保护软件不被非法修改或反编译的程序 它们一般都是先于程序运行 拿到控制权 然后完成它们保护软件的任务 就像动植物的壳一般都是在身体外面一样理所当然 由于这段程序和自然界的壳在功能上有很多相同的地方 基于命名的规则 大家就把这样的程序称为 壳 了 给软件加壳的目的主要有两点 第一就是达到压缩EXE文件的目的 以节约存储空间 方便网络传输 第二就是加密保密的目的 有一些版权信息需要保护起来 不能让别人随意更改 如作者的姓名 软件名称等 能够完成对可执行文件压缩和对信息加密的软件 我们称之为加壳软件 3 5软件加壳与脱壳 加壳软件与一般的Winzip等压缩软件是有区别的 加壳后的文件能直接运行 还是一个可执行文件 它们的压缩是在内存中完成的 而Winzip等软件只能把文件解压到硬盘中 只是将压缩后的文件还原成源文件 加壳与没有加壳软件的运行情况如图所示 常见的加壳软件有ASPack UPX PECompact等 3 5软件加壳与脱壳 3 5 2脱壳 脱壳 顾名思义 就是把在软件外面起保护作用的 壳 程序去掉 脱壳有两种方法 一种是自动脱壳 另一种是手动脱壳 1 自动脱壳自动脱壳就是用相应的脱壳程序对加密的程序进行脱壳的方法 一般每种压缩工具的壳 都会有相应的脱壳工具 因此只要找到较新版本的脱壳工具 一般的壳都可轻易脱去 首先 我们要知道软件使用的是哪种加壳软件进行加密的 这就得用到侦测文件类型的工具 常用的侦测文件类型工具有Language2000 FileInfo GetTyp TYP等 3 5软件加壳与脱壳 下图为Language2000中文版的界面 用侦册文件类型工具查出软件使用的加壳工具后 再用相应的脱壳工具即可实现自动脱壳 常用的脱壳工具有 UnAspack AspackDie1 4 UnPEPack ProcDump32等 3 5软件加壳与脱壳 2 手动脱壳手动脱壳是指不借助自动脱壳工具 而是用动态调试工具SOFTICE或TRW2000来脱壳 手动脱壳一般难度较大 使用的工具有调试器 SoftICE TRW2000等 内存抓取工具 Procdump等 十六进制工具 Hiew UltraEdit HexWorkshop等 PE编辑工具 Procdump Peditor等 手动脱壳的一般步骤为 第一步 确定壳的种类 第二步 入口点 EntryPoint 的确定 第三步 dump取内存已还原文件 第四步 修正刚dump取的文件 3 6软件安全保护建议 本节给出的关于软件保护的一般性建议 是无数人经验的总结 在设计软件保护方式时遵守这些准则 将会提高软件的保护强度 1 软件最终发行之前一定要将可执行程序进行加壳 压缩 使得解密者无法直接修改程序 2 增加对软件自身的完整性检查 3 不要采用一目了然的名字来命名函数和文件 4 尽可能少地给用户提示信息 5 将注册码 安装时间记录在多个不同的地方 6 检查注册信息和时间的代码越分散越好 7 通过读取关键的系统文件的修改时间来得到系统时间的信息 8 如果有可能的话 可以采用联网检查注册码的方法 且数据在网上传输时要加密 3 6软件安全保护建议 9 除了加壳 压缩之外 还需要自己编程在软件中嵌入反跟踪的代码 以增加安全性 10 在检查注册信息的时候插入大量无用的运算以误导解密者 并在检查出错误的注册信息之后加入延时 11 给软件保护加入一定的随机性 12 如果采用注册码的保护方式 最好是一机一码 即注册码与机器特征相关 13 如果试用版软件没有某项功能 则不要仅仅使相关的菜单变灰 而是彻底删除相关的代码 使得编译后的程序中根本没有相关的功能代码 14 如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论