第三章软件安全技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*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.5 软件加壳与脱壳
3.5.2 脱壳 “脱壳”顾名思义,就是把在软件外面起保护作用的 “壳”程序去掉。脱壳有两种方法:一种是自动脱壳,另 一种是手动脱壳。 (1)自动脱壳 自动脱壳就是用相应的脱壳程序对加密的程序进行脱壳 的方法。一般每种压缩工具的壳,都会有相应的脱壳工具, 因此只要找到较新版本的脱壳工具,一般的壳都可轻易脱 去。 首先,我们要知道软件使用的是哪种加壳软件进行加密 的,这就得用到侦测文件类型的工具。常用的侦测文件类 型工具有Language 2000、FileInfo、GetTyp、TYP等。
3.5 软件加壳与脱壳
加壳软件与一般的Winzip等压缩软件是有 区别的。加壳后的文件能直接运行,还是 一个可执行文件,它们的压缩是在内存中 完成的。而 Winzip 等软件只能把文件解压 到硬盘中,只是将压缩后的文件还原成源 文件。加壳与没有加壳软件的运行情况如 图所示:
常见的加壳软件有ASPack、UPX、PECompact等。
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.3 常用的软件保护技术
常见的软件保护技术有序列号方式、时间限制、警告窗 口、Key File保护、功能限制、CD—check等,下面对它 们分别做出简要介绍。
3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 序列号方式 时间限制 Nag窗口 Key File保护 功能限制的程序 CD-check
来自百度文库.2
软件分析技术
3.2.2 动态分析技术 所谓动态分析是指利用动态分析工具一步一步地单步执 行软件。为了有效地进行动态跟踪分析,需要进行以下两 个步骤: 第一步,对软件进行粗跟踪。第二步,对关键部分进行 细跟踪。 常用的动态分析工具有Soft-ICE和Trw2000。 Trw2000完全兼容Soft-ICE的各条指令,并且专门针对软 件破解进行了优化,在Windows 9x下跟踪调试功能更强。 可以设置各种断点,并且断点种类更多。它可以像一些脱 壳工具一样完成对加密外壳的去除,自动生成EXE文件。 它还有在DOS下的版本,名为TR。下图为Trw2000界面:
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取的文件。
LOGO
第三章
计算机软件安全技术
Contents
1 2 3 4 软件安全概述 常用的软件保护技术 反跟踪技术
软件加壳与脱壳
3.1 软件安全技术概述
计算机软件安全主要是指保证所有计算机程序 和文档资料免遭破坏、非法拷贝、非法使用而采 用的技术和方法,其内容包括如下五个方面: (1)软件的自身安全 (2)软件的存储安全 (3)软件的通信安全 (4)软件的使用安全 (5)软件的运行安全
影响计算机软件安全的因素很多,要确保 其安全,必须采取两方面的措施:一是非 技术性措施,如制定有关法律、法规,加 强各方面的管理等。二是技术性措施,如 采用软件安全的各种防拷贝加密技术、防 静态分析、防动态跟踪技术等。
3.2
软件分析技术
在进行软件的破解、解密工作中,一个首要的问题是对 软件进行分析。这些软件都是机器代码程序,对于它们分 析必须使用静态或动态调试工具,分析跟踪其汇编代码。 3.2.1 静态分析技术 所谓静态分析即从反汇编出来的程序清单上分析,从提 示信息入手进行分析。如果我们对静态反汇编出来的程序 清单进行阅读,就可以从中找到有用的提示信息,了解软 件的编程思路,以便顺利破解。 常用的静态分析工具有W32DASM、IDA和HIEW等。 W32DASM可以方便的反汇编程序,它能静态分析程序流 程,也可动态分析程序。在其新版本中,还加强了对中文 字符串的提取, W32DASM的界面如下图所示: