电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《软件安全》课件第8章 软件分析与防护概述

15页
  • 卖家[上传人]:小萌新****ao
  • 文档编号:352344841
  • 上传时间:2023-05-17
  • 文档格式:PPTX
  • 文档大小:331.38KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、软件安全Part章 节08软件分析与防护概述8.1软件攻击与防御概述8.2软件攻击与防御的方法8.2.1攻击策略被破解对象的原型被破解对象的原型模拟的DRM(数字版权保护系统)播放器读入已被加密的音频数据,把这些数据解密出来,再把明文的数字音频信号解码成模拟信号,并把它发送到声卡上。解密过程中需要两个密钥:一个是用户提供的,另一个则是存放在播放器中的。8.2软件攻击与防御的方法8.2.1攻击策略破解者的动机CIA:机密性(confidentiality)、完整性(integrity)和可用性保护程序完整性的方法:把程序从语义上分为两个部分实现程序正常功能的核心代码使核心部分免受攻击而添加的防护代码。破解者的目标则是在保证核心代码不被破坏的情况下,干掉防护代码,并加上实现他自己功能的代码8.2软件攻击与防御的方法8.2.1攻击策略破解是如何进行的假设:破解者刚开始进行破解时也不掌握任何其他关于程序的信息静态对动态和带调试符号对不带调试符号 与平台无关的分发形式 与Java或C#一类的很多语言都不会把源码编译成某种处理器专用的机器码,而是把源码编译成与平台无关的形式。一个反编译器可以轻松地

      2、把.class文件近乎完美地还原成java源码。Java的.class文件还是动态链接的,Java可执行文件是动态链接且带调试符号的8.2软件攻击与防御的方法8.2.1攻击策略破解者会用到的破解方法破解过程分为下列5个阶段:黑盒阶段动态分析阶段静态分析阶段编辑阶段自动化阶段实际破解时,上述的前4个阶段是互相交织在一起,并由破解者手工完成的。破解者可能需要不断地进行各种尝试,多次运行程序,并不断地重复这一过程。每重复一次破解者对程序的理解就更进一步,直到破解者自认为达到目标为止。在最后这个阶段里,破解者将编写一个自动化的脚本把这次破解所获得的经验固化下来脚本。8.2软件攻击与防御的方法8.2.1攻击策略破解者会用到的破解方法破解:定位保护代码修改测试调试:编辑源码编译测试动态分析破解对调试调试与破解的区别8.2软件攻击与防御的方法8.2.1攻击策略破解者会用到的破解方法动态分析利用黑盒分析的结果一种常用的攻击方法是通过分析程序对系统调用/库函数的 使用情况来推断程序内部结构静态分析有些髙手能像读源码一样读机器码),因此他们只要有一个反汇编器就能开始逆向分析。要是有好的工具,静态分析的效率

      3、可能会更高一些。有时即使只使用简单的模式匹配算法,在二进制代码中搜索一些东西也很管用。8.2软件攻击与防御的方法8.2.1攻击策略破解者会用到的破解方法编译发现源码中有个bug时,你只要再回到“编辑源码编译测试”这个开发循环中的“编辑源码”阶段就可以了,因为你手里是有源码的!但对干破解者来说,在“定位修改测试”这个循环中,他手里只有二进制代码,修改这一步也不是这么容易就能完成的。自动化破解者会编写一个工具(大多数情况下是写一个脚本)。使用这个工具(,可以自动把程序中所使用的软件保护代码去除掉。根据破解者的水平以及软件中保护措施的强度,这类脚本的通用性也有好有坏有的只能破解某个特定的软件,而有的则可以对付所有使用某类保护技术的程序。8.2软件攻击与防御的方法8.2.1攻击策略破解者都使用哪些工具和哪些技术一般使用的都是些相当简单的软件(主要是调试器)以及一些针对某些保护技术而开发的专用工具,再加上近乎无限的个人时间、精力以及热情来进行破解的。学术研究领域中有一些强大的工具(比如切片和trace工具)可能会给破解带来莫大的帮助,但我们相信目前破解者们还没有开始使用这些工具。造成这一现象的原

      4、因可能是这些工具还只处于原型阶段它们还不够稳定、运行起来不够快、结果也不够精确,也有可能是它们不能在进行破解的操作系统中运行,又或者在破解圈子里可能还没人知道有这些工具的存在。8.2软件攻击与防御的方法8.2.1攻击策略破解者都会使用哪些技术从可执行文件中获取信息在库函数上设置断点静态模式匹配内存断点获取程序内部使用的数据修改环境变量动态模式匹配对比攻击从反编译结果中恢复软件使用的算法8.2软件攻击与防御的方法8.2.1攻击策略小结那么一次典型的破解应该是什么样的呢?它可能是:对代码进行静态的模式匹配(用以发现有关字符串或者库函数的位置);对程序的执行模式进行动态模式匹配(用来发现已知算法,比如加密函数,在程序中的位置);把程序使用系统库或者其他库中提供的函数的情况与程序内部的代码联系起来(用以找到保护代码在程序中的位置);对二进制机器码进行反汇编;8.2软件攻击与防御的方法8.2.1攻击策略小结对二进制代码进行反编译,尽管结果是不完整的,有时甚至是错误的;在得不到源码的情况下,对二进制代码进行调试;(静态或者动态地)比较同一个程序的两个不同版本(用以发现用户指纹所在的位置);修改程序执行时的环境变量(让程序使用破解者的动态库,修改库的搜索路径,对操作系统进行修改,等等);修改二进制可执行文件(去掉程序中破解者不希望有的行为,或者给程序加上新的功能)。8.2软件攻击与防御的方法8.2.2防御方法防止调试:防止调试就是阻碍用户对我们所设计的程序进行调试,尽量使用户很难甚至不能调试程序。防止分析:防止分析是指将程序中的代码或者数据通过各种技术手段(如变形、移位等)变换为更加复杂和不直观的等价代码。防止修改:防止修改是指通过技术手段,防止被保护程序的代码和数据被修改,主要通过在程序中增加对程序自身或相关代码的校验或者对程序代码进行签名验证等工作实现对程序自身的保护。

      《《软件安全》课件第8章 软件分析与防护概述》由会员小萌新****ao分享,可在线阅读,更多相关《《软件安全》课件第8章 软件分析与防护概述》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.