计算机软件安全技术.ppt

上传人:牧羊曲112 文档编号:5084926 上传时间:2023-06-02 格式:PPT 页数:14 大小:307.53KB
返回 下载 相关 举报
计算机软件安全技术.ppt_第1页
第1页 / 共14页
计算机软件安全技术.ppt_第2页
第2页 / 共14页
计算机软件安全技术.ppt_第3页
第3页 / 共14页
计算机软件安全技术.ppt_第4页
第4页 / 共14页
计算机软件安全技术.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《计算机软件安全技术.ppt》由会员分享,可在线阅读,更多相关《计算机软件安全技术.ppt(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等,下面对它们分别做出简要介绍。3.3.1 序列号方式 3.3

4、.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

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 软件加壳与脱壳,3.5.2 脱壳“脱壳”顾

7、名思义,就是把在软件外面起保护作用的“壳”程序去掉。脱壳有两种方法:一种是自动脱壳,另一种是手动脱壳。(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等)。手动脱壳的一般步骤为:第一步,确定壳的种类。第二步,入口点(Entry Point)的确定。第三步,dump取内存已还原文

9、件。第四步,修正刚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)自己设计的检查注册信息的算法不能过于简单,最好是采用比较成熟的密码学算法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号