{安全生产管理}计算机安全技术第3章

上传人:冯** 文档编号:140613423 上传时间:2020-07-31 格式:PPTX 页数:14 大小:318.08KB
返回 下载 相关 举报
{安全生产管理}计算机安全技术第3章_第1页
第1页 / 共14页
{安全生产管理}计算机安全技术第3章_第2页
第2页 / 共14页
{安全生产管理}计算机安全技术第3章_第3页
第3页 / 共14页
{安全生产管理}计算机安全技术第3章_第4页
第4页 / 共14页
{安全生产管理}计算机安全技术第3章_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《{安全生产管理}计算机安全技术第3章》由会员分享,可在线阅读,更多相关《{安全生产管理}计算机安全技术第3章(14页珍藏版)》请在金锄头文库上搜索。

1、第三章,计算机软件安全技术,3.1 软件安全技术概述,计算机软件安全主要是指保证所有计算机程序和文档资料免遭破坏、非法拷贝、非法使用而采用的技术和方法,其内容包括如下五个方面: (1)软件的自身安全 (2)软件的存储安全 (3)软件的通信安全 (4)软件的使用安全 (5)软件的运行安全 影响计算机软件安全的因素很多,要确保其安全,必须采取两方面的措施:一是非技术性措施,如制定有关法律、法规,加强各方面的管理等。二是技术性措施,如采用软件安全的各种防拷贝加密技术、防静态分析、防动态跟踪技术等。,3.2 软件分析技术,在进行软件的破解、解密工作中,一个首要的问题是对软件进行分析。这些软件都是机器代

2、码程序,对于它们分析必须使用静态或动态调试工具,分析跟踪其汇编代码。 3.2.1 静态分析技术 所谓静态分析即从反汇编出来的程序清单上分析,从提示信息入手进行分析。如果我们对静态反汇编出来的程序清单进行阅读,就可以从中找到有用的提示信息,了解软件的编程思路,以便顺利破解。 常用的静态分析工具有W32DASM、IDA和HIEW等。W32DASM可以方便的反汇编程序,它能静态分析程序流程,也可动态分析程序。在其新版本中,还加强了对中文字符串的提取, W32DASM的界面如下图所示:,3.2 软件分析技术,3.2.2 动态分析技术 所谓动态分析是指利用动态分析工具一步一步地单步执行软件。为了有效地进

3、行动态跟踪分析,需要进行以下两个步骤: 第一步,对软件进行粗跟踪。第二步,对关键部分进行细跟踪。 常用的动态分析工具有Soft-ICE和Trw2000。 Trw2000完全兼容Soft-ICE的各条指令,并且专门针对软件破解进行了优化,在Windows 9x下跟踪调试功能更强。可以设置各种断点,并且断点种类更多。它可以像一些脱壳工具一样完成对加密外壳的去除,自动生成EXE文件。它还有在DOS下的版本,名为TR。下图为Trw2000界面:,3.3 常用的软件保护技术,常见的软件保护技术有序列号方式、时间限制、警告窗口、Key File保护、功能限制、CDcheck等,下面对它们分别做出简要介绍。

4、 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 设置显示器的显示性

5、能 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 加壳 计算机软件中的“壳”是一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称

6、为“壳”了。 给软件加壳的目的主要有两点:第一就是达到压缩EXE文件的目的,以节约存储空间,方便网络传输。第二就是加密保密的目的,有一些版权信息需要保护起来,不能让别人随意更改,如作者的姓名、软件名称等。能够完成对可执行文件压缩和对信息加密的软件,我们称之为加壳软件。,3.5 软件加壳与脱壳,加壳软件与一般的Winzip等压缩软件是有区别的。加壳后的文件能直接运行,还是一个可执行文件,它们的压缩是在内存中完成的。而Winzip等软件只能把文件解压到硬盘中,只是将压缩后的文件还原成源文件。加壳与没有加壳软件的运行情况如图所示: 常见的加壳软件有ASPack、UPX、PECompact等。,3.5

7、 软件加壳与脱壳,3.5.2 脱壳 “脱壳”顾名思义,就是把在软件外面起保护作用的“壳”程序去掉。脱壳有两种方法:一种是自动脱壳,另一种是手动脱壳。 (1)自动脱壳 自动脱壳就是用相应的脱壳程序对加密的程序进行脱壳的方法。一般每种压缩工具的壳,都会有相应的脱壳工具,因此只要找到较新版本的脱壳工具,一般的壳都可轻易脱去。 首先,我们要知道软件使用的是哪种加壳软件进行加密的,这就得用到侦测文件类型的工具。常用的侦测文件类型工具有Language 2000、FileInfo、GetTyp、TYP等。,3.5 软件加壳与脱壳,下图为Language 2000中文版的界面:,用侦册文件类型工具查出软件使

8、用的加壳工具后,再用相应的脱壳工具即可实现自动脱壳。常用的脱壳工具有:UnAspack、AspackDie 1.4、UnPEPack、ProcDump32等。,3.5 软件加壳与脱壳,(2)手动脱壳 手动脱壳是指不借助自动脱壳工具,而是用动态调试工具SOFTICE或TRW2000来脱壳。手动脱壳一般难度较大,使用的工具有调试器(SoftICE、TRW2000等),内存抓取工具(Procdump等),十六进制工具(Hiew、UltraEdit、Hex Workshop等),PE编辑工具(Procdump、Peditor等)。 手动脱壳的一般步骤为: 第一步,确定壳的种类。 第二步,入口点(Ent

9、ry Point)的确定。 第三步,dump取内存已还原文件。 第四步,修正刚dump取的文件。,3.6 软件安全保护建议,本节给出的关于软件保护的一般性建议,是无数人经验的总结。在设计软件保护方式时遵守这些准则,将会提高软件的保护强度。 (1)软件最终发行之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。 (2)增加对软件自身的完整性检查。 (3)不要采用一目了然的名字来命名函数和文件 (4)尽可能少地给用户提示信息 。(5)将注册码、安装时间记录在多个不同的地方。 (6)检查注册信息和时间的代码越分散越好。 (7)通过读取关键的系统文件的修改时间来得到系统时间的信息。(8)

10、如果有可能的话,可以采用联网检查注册码的方法,且数据在网上传输时要加密。,3.6软件安全保护建议,(9)除了加壳/压缩之外,还需要自己编程在软件中嵌入反跟踪的代码,以增加安全性。 (10)在检查注册信息的时候插入大量无用的运算以误导解密者,并在检查出错误的注册信息之后加入延时。(11)给软件保护加入一定的随机性 。(12)如果采用注册码的保护方式,最好是一机一码,即注册码与机器特征相关 。(13)如果试用版软件没有某项功能,则不要仅仅使相关的菜单变灰,而是彻底删除相关的代码,使得编译后的程序中根本没有相关的功能代码。(14)如果软件中包含驱动程序,则最好将保护判断加在驱动程序中。 (15)如果采用keyfile的保护方式,则keyfile的尺寸不能太小,可将其结构设计得比较复杂,在程序中不同的地方对keyfile的不同部分进行复杂的运算和检查。(16)自己设计的检查注册信息的算法不能过于简单,最好是采用比较成熟的密码学算法。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号