《软件安全技术》PPT课件.ppt

上传人:tian****1990 文档编号:7926689 上传时间:2020-03-25 格式:PPT 页数:26 大小:176.05KB
返回 下载 相关 举报
《软件安全技术》PPT课件.ppt_第1页
第1页 / 共26页
《软件安全技术》PPT课件.ppt_第2页
第2页 / 共26页
《软件安全技术》PPT课件.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
计算机安全技术 王洪涛fisher1999 第三章 计算机软件安全技术 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的各条指令 并且专门针对软件破解进行了优化 在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软件安全保护建议 本节给出的关于软件保护的一般性建议 是无数人经验的总结 在设计软件保护方式时遵守这些准则 将会提高软件的保护强度 3 6软件安全保护建议 1 软件最终发行之前一定要将可执行程序进行加壳 压缩 使得解密者无法直接修改程序 2 增加对软件自身的完整性检查 3 不要采用一目了然的名字来命名函数和文件 4 尽可能少地给用户提示信息 5 将注册码 安装时间记录在多个不同的地方 3 6软件安全保护建议 6 检查注册信息和时间的代码越分散越好 7 通过读取关键的系统文件的修改时间来得到系统时间的信息 8 如果有可能的话 可以采用联网检查注册码的方法 且数据在网上传输时要加密 9 除了加壳 压缩之外 还需要自己编程在软件中嵌入反跟踪的代码 以增加安全性 3 6软件安全保护建议 10 在检查注册信息的时候插入大量无用的运算以误导解密者 并在检查出错误的注册信息之后加入延时 11 给软件保护加入一定的随机性 12 如果采用注册码的保护方式 最好是一机一码 即注册码与机器特征相关 13 如果试用版软件没有某项功能 则不要仅仅使相关的菜单变灰 而是彻底删除相关的代码 使得编译后的程序中根本没有相关的功能代码 14 如果软件中包含驱动程序 则最好将保护判断加在驱动程序中 15 如果采用keyfile的保护方式 则keyfile的尺寸不能太小 可将其结构设计得比较复杂 在程序中不同的地方对keyfile的不同部分进行复杂的运算和检查 16 自己设计的检查注册信息的算法不能过于简单 最好是采用比较成熟的密码学算法 Fisher1999 ThankYou
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!