导读:本文包含了二进制程序论文开题报告文献综述及选题提纲参考文献,主要关键词:二进制程序分析,控制流图(CFG),混合分析技术,模糊测试
二进制程序论文文献综述
朱凯龙,陆余良,黄晖,邓兆琨,邓一杰[1](2019)在《基于混合分析的二进制程序控制流图构建方法》一文中研究指出构建控制流图(CFG)是二进制程序分析的基础工作,针对静态构建方法无法处理间接跳转,动态构建方法效率低、不适用于大规模程序的问题,提出结合静态分析和动态分析的混合分析方法.使用静态分析获得基础的控制流信息;采用模糊测试生成测试用例以进行动态分析,利用动态插桩获得间接跳转信息;融合静态分析和动态分析结果生成控制流图.基于该混合分析方法,设计并实现了面向x86平台二进制程序的控制流图构建工具CFGConstructor.分别在示例程序和CGC数据集上进行实验,评估该工具的有效性和性能.实验结果表明CFGConstructor相比于静态分析能够构建更加完备的控制流图,相比于动态分析分析效率更高,能够适用于大规模程序.(本文来源于《浙江大学学报(工学版)》期刊2019年05期)
张瀚方,周安民,贾鹏,刘露平,刘亮[2](2019)在《面向二进制程序的导向性模糊测试方法》一文中研究指出为了解决当前模糊测试技术中变异存在一定的盲目性以及变异生成的样本大多经过相同的高频路径的问题,提出并实现了一种基于轻量级程序分析技术的二进制程序模糊测试方法。首先对目标二进制程序进行静态分析来筛选在模糊测试过程中阻碍样本文件深入程序内部的比较指令;随后对目标文件进行插桩来获取比较指令中操作数的具体值,并根据该具体值为比较指令建立实时的比较进度信息,通过比较进度衡量样本的重要程度;然后基于模糊测试过程中实时的路径覆盖信息为经过稀有路径的样本增加其被挑选进行变异的概率;最后根据比较进度信息并结合启发式策略有针对性地对样本文件进行变异,通过变异引导提高模糊测试中生成能够绕过程序规约检查的有效样本的效率。实验结果表明,所提方法发现crash及发现新路径的能力均优于模糊测试工具AFL-Dyninst。(本文来源于《计算机应用》期刊2019年05期)
李元诚,王伯彦,吕俊峰,张攀,粟仁杰[3](2019)在《面向二进制程序的开源软件缺陷检测方法》一文中研究指出开源软件源代码缺陷分析已引起广泛关注,但各类程序都以二进制形式运行,目前仍缺少在有限时间内对大量二进制程序进行缺陷检测的有效方法。针对这一问题,提出了一种结合软件路径特征的卷积神经网络方法(Path-Based Convolution Neural Network, PB-CNN),用于二进制开源软件的缺陷检测。首先根据跳转指令将二进制程序分割为多个基本块并构建控制流图,然后遍历控制流图以提取软件路径特征,接着结合多通道卷积神经网络提取其深层特征并训练PB-CNN神经元参数,最后通过训练好的PB-CNN检测软件缺陷。实验结果表明,PB-CNN方法有效提取了二进制程序的路径特征,提高了缺陷检测精度。(本文来源于《华北电力大学学报(自然科学版)》期刊2019年04期)
焦龙龙,罗森林,刘望桐,潘丽敏,张笈[4](2018)在《基于遗传算法的二进制程序模糊测试方法》一文中研究指出针对当前二进制程序模糊测试中基于变异生成的测试数据的执行路径重复率高导致代码覆盖率低的问题,提出基于遗传算法的二进制程序模糊测试方法.该方法将测试数据转换为遗传算法中的个体,利用Quick Emulator对二进制程序进行插桩以获取程序执行路径,使用基于程序执行路径的适应度函数指导遗传算法中的进化过程,使生成的测试数据能够覆盖更多的程序执行路径.实验结果表明,该方法在相同时间内达到的代码覆盖率平均比模糊测试工具American Fuzzy Lop(AFL)高25.4%.同时,该方法在漏洞挖掘实验中发现了测试程序中的所有崩溃漏洞并且其效率至少比AFL提高10%.该方法能够用于提高模糊测试的漏洞挖掘效率.(本文来源于《浙江大学学报(工学版)》期刊2018年05期)
吴芳[5](2018)在《基于深度学习的二进制程序漏洞分析与检测方法研究》一文中研究指出软件系统的数量和种类不断增多,而软件漏洞无法完全避免。软件漏洞的数量也逐年提升,及时检测出软件存在的缺陷以免被不法分子利用也变得越来越重要。大多数情况下,研究人员无法获取软件程序的源代码,只能获取对应的二进制程序文件。因此,研究二进制程序的漏洞检测具有重要的实际意义。目前应用较广、效果最好的二进制漏洞检测技术为模糊测试,但是模糊测试技术需要对程序进行多次运行,消耗资源多,效率低。近年来,随着大数据以及人工智能等技术的发展,基于传统机器学习方法的漏洞检测技术取得了一定的进展。本文基于相关工作,同时参考深度学习在文本分类上的研究成果,提出了一种利用深度学习技术进行二进制漏洞检测的方法。与此同时,本文设计构建了卷积神经网络模型、长短期记忆网络模型、双向长短期记忆网络模型和卷积神经网络—长短期记忆网络模型四个漏洞检测模型。为了测试深度学习漏洞检测模型的性能,利用了 VDiscover工具提取的数据,即32位Linux系统中的二进制程序运行过程中的函数调用序列及其最终运行状态,并以模糊测试工具zuff的测试结果作为标签,对深度学习漏洞检测模型进行训练。在实验中,本文首先通过使用word2vec方法将文本数据转化为高效的向量表示,有效提高了数据的稠密性和结构性。通过选择合适的网络结构和超参数,本文训练和优化了深度学习漏洞检测模型,并在测试数据集上进行了相关实验,来预测二进制程序模糊测试工具zuff的结果。实验结果表明,本文提出的深度学习漏洞检测模型的预测准确度最高可达92.28%。相比于传统的多层感知机模型,预测精度提高了 28.72%。在时间性能方面,模糊测试需要对每个测试用例进行上万次的运行,而基于深度学习的方法只需运行一次,预测效率也得到了较大提高。通过比较不同模型在测试集上的真正率、假正率和F值,可知卷积神经网络模型的F值最高。同时,本文也发现基于卷积神经网络漏洞检测模型的参数普遍要少,并且训练速度要显着快于基于长短时记忆网络的深度学习模型。通过对各个模型的最终性能比较可知,卷积神经网络模型在本文的漏洞检测任务中综合表现最好。(本文来源于《北京交通大学》期刊2018-03-11)
董国良,臧洌,李航,甘露,郭咏科[6](2018)在《基于污点分析的二进制程序漏洞检测》一文中研究指出针对现有动态污点分析平台由于欠污染和过污染导致的准确度问题,研究并实现了一种面向二进制程序的动态污点分析方法。从污点标记、污点传播和污点检测叁个方面对现有污点分析技术的准确率问题进行改进,扩展了污点标记状态空间与污点传播状态转换的行为实体,根据指令特征对X86架构指令进行分析和归类,设计了兼顾数据流传播策略与控制流传播策略的污点传播策略,扩充了关于间接污染、潜在漏洞、污点清除等污点传播规则,定义了新的污点检测安全规则与相应的处理方式,完善了污点检测处理方法。基于上述方法实现了改进的动态污点分析原型系统ODDTA,对原型系统的实验结果表明,该方法可有效解决现有污点分析平台的漏报和误报问题,提升污点分析的准确率和执行效率。(本文来源于《计算机技术与发展》期刊2018年03期)
李政宇[7](2017)在《基于混合执行的二进制程序模糊测试关键技术研究》一文中研究指出随着时代发展,人们对软件质量要求越来越高,模糊测试作为一种重要的技术,在软件质量保证上起到了积极的作用。但是随着软件规模越来越大,传统的模糊测试技术面临测试效率和准确性等方面的新挑战,为此,研究者们挖掘程序的内部结构,争取构造有效的模糊测试用例,即高覆盖率的测试用例。在这一目标的驱动下,研究者提出了各种具体实现的技术。由于具备不需要源代码、低误报率、测试用例生成等特点,基于混合执行的二进制程序模糊测试技术得到了广泛的研究和应用。它主要使用动态污点分析等技术挖掘程序内部的构造,在此基础上,使用符号执行技术进行高覆盖率的测试用例生成。但是目前基于混合执行的二进制程序模糊测试系统存在一个问题:研究者们广泛关注于测试用例覆盖问题,但是忽略了测试用例的漏洞触发能力,即缺少相应的漏洞触发建模,即使覆盖了较多路径,其生成可触发漏洞的测试用例的可能性也比较低。为了解决这一问题,本文提出了一个利用污点分析和符号执行进行漏洞建模的方法TSM,即基于漏洞触发模式生成测试用例的方法。在充分使用原先基于混合执行的二进制程序模糊测试系统框架的前提下,扩展污点分析能力,从而构建漏洞触发模式,在漏洞模式匹配成功之后,利用污点分析结果进行可触发漏洞的测试用例约束构建,最后使用符号执行技术生成可触发漏洞的测试用例。实验和测试表明,本文提出的TSM漏洞建模方法能够有效提升基于混合执行的二进制程序模糊测试系统的漏洞触发能力。(本文来源于《北京邮电大学》期刊2017-06-01)
贺玄[8](2017)在《二进制程序自动化漏洞利用方法研究》一文中研究指出如何自动化地挖掘二进制程序漏洞并生成漏洞利用代码是当前软件安全领域研究的一个热点。目前的漏洞自动化利用方案都还处于较为初期的阶段,存在漏洞利用类型简单、对生成的Exploit没有进一步验证等问题。因此提出基于二进制程序的自动化漏洞利用方法,该方法希望能进一步完善目前的自动化漏洞利用技术。基于二进制程序的自动化漏洞利用方法分为叁个模块:动态符号化执行模块、验证模块和Exploit校正模块。动态符号化执行模块负责探索出有漏洞的路径,结合漏洞现场分析其类型,然后判断是否满足利用约束,满足则添加该约束生成Exploit。可利用的漏洞类型有栈溢出和函数指针覆盖两类,利用方案有代码注入和代码复用两类具体四种利用方案。验证模块负责将产生的Exploit提供给程序实际执行,判断Exploit是否有效。若在验证中发生了崩溃,则将Exploit交给Exploit校正模块。Exploit校正模块负责使用动态污点跟踪的方法在汇编指令级跟踪Exploit在程序运行中的传播过程,确定崩溃是由Exploit中的哪些字节导致的,然后对该字节进行变异、再验证,如此反复直至Exploit可用。根据以上提出的方法,实现了基于二进制程序的自动化漏洞利用的原型系统:以符号化执行引擎Angr为平台进行动态符号化执行分析二进制程序,完成漏洞挖掘和利用的步骤;以Pin为二进制插桩平台,在汇编指令级进行污点传播指令插桩,进行动态污点跟踪分析,完成自动化校正Exploit的步骤。经过对11个CTF题目样本的测试,原型系统能够对微小型程序全自动地完成漏洞挖掘、利用和自动化校正Exploit的工作,证明使用动态污点跟踪方法完成对Exploit的校正是有效可行的。(本文来源于《华中科技大学》期刊2017-05-01)
傅玉,邓艺,孙晓山,程亮,张阳[9](2018)在《面向二进制程序的空指针解引用错误的检测方法》一文中研究指出空指针解引用是C/C++程序中常见的一类程序错误,它可让攻击者旁路安全机制或窥探操作系统敏感信息,一直是计算机安全领域的重要研究课题之一.目前已有很多(自动)分析工具对其进行检测,然而它们都在源代码层面上进行检测.大量的商业软件不公开源代码,因此基于源代码的工具无法对这类软件中空指针解引用进行检测.此外,一些空指针解引用无法在源代码层面检测,因为这些缺陷由编译选项和编译优化不当引入.因此进行基于二进制的空指针解引用检测非常必要.基于二进制的空指针解引用检测的一个优势是可以包含库函数的代码,而基于源代码的分析通常采用人工构造的库函数摘要,从而影响检测的准确性和召回率.该文首次提出并实现了面向二进制程序的空指针解引用静态检测工具NPtrChecker,直接接受二进制程序进行分析,并给出代码中出现空指针的来源和解引用的位置以及对应的路径条件.在二进制上进行空指针解引用检测的一个重要难点是二进制程序中缺少指针类型、结构体类型等相关数据类型信息.如果缺乏这类信息,会导致分析结果的准确率大大降低.但是从二进制中恢复类型、数据结构本身是非常困难的问题.针对上述问题,我们提出了一种内存模型,区分来自同一数据结构的不同域的引用,实现了针对空指针解引用检测的域敏感指针分析.为了进一步提高分析的准确率,文章在此基础上设计实现了一套基于函数摘要的上下文敏感的数据流分析算法.此外,工具采用最弱前置条件对数据流分析结果进行验证,检查从指针来源到解引用点的路径条件是否可以被满足,以降低误报率.我们应用NPtrChecker分析了SPEC2000中的11个程序,总共报告了37个可疑空指针解引用,通过人工确认,其中22个是真实的程序错误.相对于Saturn报告的92个,仅13个为真;LUKE报告的3个,2个为真,而文中的工具检测出了更多的空指针解引用错误,同时保持了较低的误报率.(本文来源于《计算机学报》期刊2018年03期)
董国良[10](2017)在《基于动态污点分析的二进制程序脆弱性检测技术研究》一文中研究指出当前,来自网络与软件系统的各种安全威胁越来越严重,防范形势日益严峻。动态污点分析技术(Dynamic Taint Analysis,简称DTA)能够对外部数据进行污点标记,通过监控追踪非可信污点数据的传播过程,检测污点数据的非法使用。当前的动态污点分析技术存在准确度和性能两方面的问题,其中准确度准确度问题主要体现在由于“过污染”导致的误报和“欠污染”导致的漏报,性能问题表现在其所依赖的二进制动态分析平台造成的执行性能损耗。针对上述问题,本文设计并实现了面向二进制程序脆弱性的在线检测与离线分析动态污点分析框架,结合动态符号执行技术,进一步提出并实现了应用于动态污点分析系统的路径自动生成方法。论文的主要工作如下:(1)研究了基于动态污点分析的细粒度二进制程序脆弱性检测技术,提出将在线脆弱性检测与离线逆向溯源分析相结合的污点分析方法,并基于此方法设计和实现了脆弱性检测与分析的动态污点分析原型系统VDA-DTA,从污点标记、污点传播和污点检测叁个方面对现有动态污点分析技术的准确度问题进行改进和完善,有效提升了动态污点分析脆弱性检测的准确度;(2)针对污点分析平台执行性能损耗严重的问题,提出并实现了一种应用于动态污点分析过程的路径自动生成方法,设计了一种高效与实用的覆盖率度量计算方法,以二进制代码基本块为单位对用例执行覆盖率进行度量,结合符号执行与约束求解技术,能够自动生成分属于不同输入等价类的输入用例,从而保证了以较小的测试集覆盖较多的执行路径,最后借助虚拟化技术实现了动态污点分析各用例的并行执行,有效提升了动态污点分析的执行效率。(本文来源于《南京航空航天大学》期刊2017-03-01)
二进制程序论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
为了解决当前模糊测试技术中变异存在一定的盲目性以及变异生成的样本大多经过相同的高频路径的问题,提出并实现了一种基于轻量级程序分析技术的二进制程序模糊测试方法。首先对目标二进制程序进行静态分析来筛选在模糊测试过程中阻碍样本文件深入程序内部的比较指令;随后对目标文件进行插桩来获取比较指令中操作数的具体值,并根据该具体值为比较指令建立实时的比较进度信息,通过比较进度衡量样本的重要程度;然后基于模糊测试过程中实时的路径覆盖信息为经过稀有路径的样本增加其被挑选进行变异的概率;最后根据比较进度信息并结合启发式策略有针对性地对样本文件进行变异,通过变异引导提高模糊测试中生成能够绕过程序规约检查的有效样本的效率。实验结果表明,所提方法发现crash及发现新路径的能力均优于模糊测试工具AFL-Dyninst。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
二进制程序论文参考文献
[1].朱凯龙,陆余良,黄晖,邓兆琨,邓一杰.基于混合分析的二进制程序控制流图构建方法[J].浙江大学学报(工学版).2019
[2].张瀚方,周安民,贾鹏,刘露平,刘亮.面向二进制程序的导向性模糊测试方法[J].计算机应用.2019
[3].李元诚,王伯彦,吕俊峰,张攀,粟仁杰.面向二进制程序的开源软件缺陷检测方法[J].华北电力大学学报(自然科学版).2019
[4].焦龙龙,罗森林,刘望桐,潘丽敏,张笈.基于遗传算法的二进制程序模糊测试方法[J].浙江大学学报(工学版).2018
[5].吴芳.基于深度学习的二进制程序漏洞分析与检测方法研究[D].北京交通大学.2018
[6].董国良,臧洌,李航,甘露,郭咏科.基于污点分析的二进制程序漏洞检测[J].计算机技术与发展.2018
[7].李政宇.基于混合执行的二进制程序模糊测试关键技术研究[D].北京邮电大学.2017
[8].贺玄.二进制程序自动化漏洞利用方法研究[D].华中科技大学.2017
[9].傅玉,邓艺,孙晓山,程亮,张阳.面向二进制程序的空指针解引用错误的检测方法[J].计算机学报.2018
[10].董国良.基于动态污点分析的二进制程序脆弱性检测技术研究[D].南京航空航天大学.2017