《软件安全技术》PPT课件 (2).ppt_第1页
《软件安全技术》PPT课件 (2).ppt_第2页
《软件安全技术》PPT课件 (2).ppt_第3页
《软件安全技术》PPT课件 (2).ppt_第4页
《软件安全技术》PPT课件 (2).ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

LOGO 计算机安全技术 王洪涛 LOGO 第三章 计算机软件安全技术 Contents 软件安全概述1 常用的软件保护技术2 反跟踪技术3 软件加壳与脱壳4 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的各条指令,并且专门针对软 件破解进行了优化,在Windows 9x下跟踪调试功能更强。 可以设置各种断点,并且断点种类更多。它可以像一些脱 壳工具一样完成对加密外壳的去除,自动生成EXE文件。 它还有在DOS下的版本,名为TR。下图为Trw2000界面: 3.3 常用的软件保护技术 常见的软件保护技术有序列号方式、时间限制、警告窗 口、Key File保护、功能限制、CDcheck等,下面对它 们分别做出简要介绍。 3.3.1 序列号方式 3.3.2 时间限制 3.3.3 Nag窗口 3.3.4 Key File保护 3.3.5 功能限制的程序 3.3.6 CD-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)自动脱壳 自动脱壳就是用相应的脱壳程序对加密的程序进行脱 壳的方法。一般每种压缩工具的壳,都会有相应的脱壳工 具,因此只要找到较新版本的脱壳工具,一般的壳都可轻 易脱去。 首先,我们要知道软件使用的是哪种加壳软件进行 加密的,这就得用到侦测文件类型的工具。常用的侦测文 件类型工具有Language 2000、FileInfo、GetTyp、TYP等 。 3.5 软件加壳与脱壳 下图为Language 2000中文版的界面: 用侦册文件类型工具查出软件使用的加壳工具后,再用相 应的脱壳工具即可实现自动脱壳。常用的脱壳工具有: UnAspack、AspackDie 1.4、UnPEPack、ProcDump32等。 3.5 软件加壳与脱壳 (2)手动脱壳 手动脱壳是指不借助自动脱壳工具,而是用动态调试 工具SOFTICE或TRW2000来脱壳。手动脱壳一般难度较大, 使用的工具有调试器(SoftICE、TRW2000等),内存抓取 工具(Procdump等),十六进制工具(Hiew、UltraEdit 、Hex Workshop等),PE编辑工具(Procdump、Peditor 等)。 手动脱壳的一般步骤为: 第一步,确定壳的种类。 第二步,入口点(Entry Point)的确定。 第三步,dump取内存已还原文件。 第四步,修正刚dump取的文件。 3.6 软件安全保护建议 本节给出的关于软件保护的一般性建议,是 无数人经验的总结。在设计软件保护方式时遵守 这些准则,将会提高软件的保护强度。 3.6 软件安全保护建议 (1)软件最终发行之前一定要将可执行程序进行加 壳/压缩,使得解密 者无法直接修改程序。 (2)增加对软件自身的完整性检查。 (3)不要采用一目了然的名字来命名函数和文件 (4)尽可能少地给用户提示信息 。 (5)将注册码、安装时间记录在多个不同的地方。 3.6 软件安全保护建议 v(6)检查注册信息和时间的代码越分散越好。 v(7)通过读取关键的系统文件的修改时间来得到 系统时间的信息。 v(8)如果有可能的话,可以采用联网检查注册码 的方法,且数据在网上传输时要加密。 v(9)除了加壳/压缩之外,还需要自己编程在软 件中嵌入反跟踪的代码,以增加安全性。 3.6 软件安全保护建议 (10)在检查注册信息的时候插入大量无用的运算 以误导解密者,并在检查出错误的注册信息之后 加入延时。 (11)给软件保护加入一定的随机性 。 (12)如果采用注册码的保护方式,最好是一机一 码,即注册码与机器特征相关 。 (13)如果试用版软件没有某项功能,则不要仅仅 使相关的菜单变灰,而是彻底删除相关的代码, 使得编译后的程序中根本没有相关的功能代码。 (14)如果软件中包含驱动程序,则最好将

温馨提示

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

评论

0/150

提交评论