版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ying
WeiRISS
Group第三章软件数据分析方法目录2静态分析动态分析文本分析开源软件数据分析工具本章小结课堂练习©YZU•Ying
Wei3静态分析静态分析(staticanalysis)定义:在不运行代码的条件下,通过某些分析技术扫描程序,验证程序是否满足某些性质。静态分析常用于检测软件源代码中的错误,不需要执行程序,可以直接在代码库上进行分析。类型:白盒测试意义:帮助软件开发人员、质量保证人员查找代码中存在的结构性错误、安全漏洞等问题,从而保证软件的整体质量能够用于帮助软件开发人员快速理解文档残缺的大规模软件系统以及系统业务逻辑抽取等系统文档化等领域分类:控制流分析、数据流分析和过程分析©YZU•Ying
Wei4静态分析控制流分析
控制流:是指程序(组件或单元)或系统中的一系列顺序发生的事件或路径,控制流通常通过控制流图(controlflowgraph,CFG)来直观地表达控制流分析:用来确定一个过程中的程序语句执行顺序以及过程与过程之间的调用关系分析方式:生成有向控制流图,用节点表示基本代码块,节点间的有向边代表控制流路径,反向边表示可能存在的循环;还可生成函数调用关系图,表示函数间的嵌套关系意义:在软件开发和分析过程中扮演着重要角色,帮助开发者深入了解程序的执行路径和结构,从而改进代码质量、性能和安全性©YZU•Ying
Wei5静态分析控制流分析©YZU•Ying
Wei控制流图函数调用关系图6静态分析数据流分析
数据流:是一组有序的、有起点和终点的数据序列,包括输入和输出流。数据流通常通过数据流图(dataflowgraph,DFG)来直观地表达数据流分析:通过分析程序状态信息在控制流图中的传播来计算每个静态程序点(语句)在运行时可能出现的状态,数据流分析并不真正执行程序分析方式:大多采用迭代分析的框架,然后在迭代分析的过程中不断更新程序点的数据流信息,最终得到比上一次迭代更小(更保守)的解意义:在软件开发和分析过程中发挥着重要作用,帮助开发人员理解和分析代码中的数据传递和依赖关系,从而提高代码质量、安全性和性能©YZU•Ying
Wei7静态分析数据流分析
©YZU•Ying
Wei8静态分析过程分析
类别:过程内分析、过程间分析过程内分析(intra-proceduralanalysis)是不考虑任何过程/函数间调用的分析算法,适用于模块独立性强的程序过程间分析(inter-proceduralanalysis)是跨函数,通过构造调用图进行过程间(跨函数)的分析,主要分为过程间控制流分析和过程间数据流分析©YZU•Ying
Wei9静态分析过程分析
©YZU•Ying
Wei过程间控制流分析10静态分析过程分析
©YZU•Ying
Wei过程间数据流分析11静态分析静态分析优缺点优点不运行代码便可验证程序的性质在源代码中精确定位潜在bug完整的代码覆盖率且易于使用可以快速检测打字错误和复制粘贴错误缺点不可避免存在误报,需要大量人工时间检查很难检测内存泄露和并发相关的错误消耗大量的内存和CPU时间©YZU•Ying
Wei12静态分析静态分析应用场景自动化测试输入生成漏洞挖掘漏洞利用自动生成签名生成协议逆向工程……静态分析方法应用控制流漏洞挖掘漏洞利用自动生成©YZU•Ying
Wei13静态分析静态分析方法应用控制流分析:用于分析二进制代码,识别函数调用、控制流程和代码块之间的关系,从而揭示恶意软件的行为数据流分析:在编译器实现中得到广泛应用,通过数据流分析,可以实现消除共用子表达式、消除死代码等静态符号执行:结合控制流和数据流分析来推断程序可能的路径和行为。起初应用于基于源代码的安全检测中,它通过符号表达式来模拟程序的执行,将程序的输出表示成包含这些符号的逻辑或数学表达式,从而进行语义分析©YZU•Ying
Wei14静态分析如何进行更加高效的代码静态分析?确定代码静态分析的目标选择适当的工具配置工具参数自动化分析优先级排序及时跟进©YZU•Ying
Wei15动态分析动态分析定义:通过在指定测试用例下运行给定程序来分析程序运行过程或结果意义:动态分析能够很好地分析编程语言中的动态属性,例如指针、动态绑定、面向对象语言中的多态与继承、线程交替等相比于静态分析,动态分析能够在一定程度上提高程序分析的准确性分类:在不同的阶段进行动态分析会有截然不同的效果在线(online)动态分析离线(offline)动态分析©YZU•Ying
Wei16动态分析在线动态分析定义:在程序的运行过程中分析当前程序行为,可以将程序运行结果和预期结果对比,确定程序中是否含有缺陷特点:很直观、无法检测未反映在输出中的缺陷©YZU•Ying
Wei17动态分析离线动态分析定义:在程序运行结束后再进行分析,可检测到未反映在输出中的缺陷过程:首先记录程序的运行行为,在程序运行结束后再进行分析,通过插桩或其他监控技术分析程序的运行行为,查找错误的行为插桩:动态分析中使用最广泛的方法之一方法:通过向源程序中添加一些语句以实现对程序代码的执行、变量的变化等情况的检查,可以获得程序的控制流和数据流信息优势:便捷地获得一个程序在某次运行中可执行语句被覆盖的情况,或是每个语句的实际执行次数,因此被广泛应用于程序测试中示例:最简单的插桩就是在程序中插入print语句©YZU•Ying
Wei18动态分析离线动态分析©YZU•Ying
Wei包含简单分支语句的函数插桩后的分支函数19动态分析动态分析优缺点优点:不需要查看程序的源代码就可以对程序进行分析能够在执行时分析多线程代码,从而检测到可能存在的死锁问题由于错误在发生时就会被捕获,动态分析大多时候都不会产生误报能够很好地分析程序可靠性、响应时间和资源消耗等问题缺点:不能保证完整的代码覆盖率不善于检测逻辑错误在代码中精确定位错误非常困难与静态分析相比,动态分析更难以使用©YZU•Ying
Wei20动态分析动态分析应用场景在线动态分析帮助开发人员在程序运行时监控变量值、调用栈和执行路径检测恶意行为、异常操作和漏洞利用监控用户在应用程序中的行为收集程序的实际运行时数据离线动态分析收集程序运行时的错误信息分析大量的日志数据评估用户体验和界面设计检测和防范潜在的安全威胁在程序运行结束后分析收集到的性能数据©YZU•Ying
Wei21文本分析文本分析文本:是一类数据量非常庞大的处理对象,文本中非结构化数据占绝大部分,非结构化体现在多种信息的无结构混合,通常无法直接知道或明确理解其内部结构代码:在宏观上具有和自然语言一样的自然性,自然性是指代码的许多方面,如名称、格式、方法的词法顺序等,它对程序语义没有影响分类:按照由人决策或机器决策定性文本分析(qualitative
textanalysis)纯定量文本分析(purelyquantitativetextanalysis)混合定量文本分析(hybridquantitativetextanalysis)©YZU•Ying
Wei22文本分析文本分析定性文本分析:可以实现二分类问题,如恶意邮件的判断、情感分析,通过分析文本来推断文本的某个特定的方面(例如作者的态度是正面的还是负面的)纯定量文本分析:主要使用统计学方法对文本某一指标的特征进行定量总结,采用基于抽样理论的统计方法进行比较混合定量文本分析:主要方法是字典分析(dictionaryanalysis),即将文本作为数据进行分析的方法,能够实现分类问题,如情感分析等©YZU•Ying
Wei23文本分析文本分析优缺点优点:挖掘到文本数据隐藏的信息(如作者意图、情感倾向等)缺点:使用不同的模型进行文本分析可能得到注重不同侧重点的结果文本数据的特征度量覆盖难以做到全面文本分析或多或少会掺杂主观因素用于代码文本的场景代码摘要生成代码注释生成©YZU•Ying
Wei24开源软件数据分析工具静态分析工具TscanCodeSootWALA动态分析工具PurifyDeemon文本分析工具PaddleNLPERNIE©YZU•Ying
Wei25本章小节本章主要介绍了三种软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山西省阳泉市辅警考试试卷带答案
- GB-T 46957-2025 中文版 电力储能系统并网安全规范(并网测试 + 风险评估)
- 2026年山西公务员(行测)考试试卷真题带答案
- 2026年黑龙江省鸡西市公安招聘辅警考试试题及答案
- 2026年审计师考试知识点专项训练试题
- 2026年护士执业资格考试护理实践技能专项训练试卷
- 2026年造价员综合提升练习试题【满分必刷】附答案详解
- 2025年中药学职称考试真题(网友回忆版)及答案
- 2026年特色农产品品牌培育师技能题库(附答案)
- 护理十八项核心制度考试题及答案详解
- 2026人工智能辅助药物研发进展及商业化前景预测报告
- 2026年计算机二级《MSOffice》高级模拟试题及答案
- 关于设立食品有限公司可行性研究报告
- 2026年保安证考试理论学习试题及答案
- 2026年秋教科版小学科学四年级上册教学计划(新教材)
- 2026-2030中国能源互联网行业发展现状调研及前景趋势洞察研究报告
- 化妆知识课件
- 2025年重庆市渝北区法院系统招聘真题
- 《儿童青少年“五健”促进行动计划(2026-2030年)》解读课件
- 2025年饲料厂中控考试题库及答案
- 2026年河北高考政治真题试卷+解析及答案
评论
0/150
提交评论