一种面向计算机二进制程序的比对依赖识别方法与系统技术方案

技术编号:36079301 阅读:24 留言:0更新日期:2022-12-24 10:52
本公开提出一种面向计算机二进制程序的比对依赖识别方法与系统,涉及数据处理技术领域。本公开通过对输入用例进行逐字节的字节翻转,监控字节翻转前后目标程序的cmp指令操作数值变动状况,来识别输入用例与目标程序比对指令之间存在的比对依赖,并输出比对依赖信息,辅助模糊测试器构造可触发新分支的测试用例,提升漏洞的发掘效率。提升漏洞的发掘效率。提升漏洞的发掘效率。

【技术实现步骤摘要】
一种面向计算机二进制程序的比对依赖识别方法与系统


[0001]本专利技术属于数字处理
,尤其涉及一种面向计算机二进制程序的比对依赖识别方法与系统。

技术介绍

[0002]软件是互联网生态重要组成部分,然而由于设计不当、开发失误等原因,软件中存在形式多样的漏洞,对软件安全乃至互联网安全带来严重安全隐患,不仅威胁个人隐私与财产安全,也对战略安全造成重大威胁。模糊测试以自动化手段挖掘软件漏洞,发现系统安全漏洞。但传统模糊测试缺乏比对依赖信息的引导,仅能覆盖软件的少部分功能代码,在漏洞发掘效率上存在提升空间。

技术实现思路

[0003]为了解决上述技术问题,本专利技术提出了一种面向计算机二进制程序的比对依赖识别方案。
[0004]本专利技术第一方面公开了一种面向计算机二进制程序的比对依赖识别方法。所述方法包括:步骤S1、获取输入用例的待识别字段集合A,并以所述输入用例为程序输入运行目标程序,以进一步获取所述目标程序中包含的各个cmp指令的操作数记录C;步骤S2、对所述待识别字段集合A中的字段执行第一翻转,以所述第一翻转后的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种面向计算机二进制程序的比对依赖识别方法,其特征在于,所述方法包括:步骤S1、获取输入用例的待识别字段集合A,并以所述输入用例为程序输入运行目标程序,以进一步获取所述目标程序中包含的各个cmp指令的操作数记录C;步骤S2、对所述待识别字段集合A中的字段执行第一翻转,以所述第一翻转后的输入用例为程序输入运行所述目标程序,并记录所述各个cmp指令的操作数记录C1,基于所述操作数记录C和所述操作数记录C1的比对结果,从所述待识别字段集合A中过滤掉部分与所述各个cmp指令不存在比对依赖的字段,并获得候选字段集合A1;步骤S3、对所述候选字段集合A1中的字段执行第二翻转,以所述第二翻转后的输入用例为程序输入运行所述目标程序,并记录所述各个cmp指令的操作数记录C2,基于所述操作数记录C和所述操作数记录C2的比对结果,确定与所述各个cmp指令存在比对依赖的字段,并提取出比对依赖信息。2.根据权利要求1所述的一种面向计算机二进制程序的比对依赖识别方法,其特征在于,在所述步骤S1中:以所述输入用例为输入,从所述输入用例中提取出若干待识别字段,从而获取所述待识别字段集合A;以所述输入用例为输入,启动所述目标程序,监控并记录所述各个cmp指令的操作数的实时值,以所述实时值作为所述操作数记录C。3.根据权利要求1所述的一种面向计算机二进制程序的比对依赖识别方法,其特征在于,所述步骤S2具体包括:步骤S2

1、设置字段最短长度阈值minspan;步骤S2

2、从所述待识别字段集合A中选取具有最大字段长度的字段,若该字段的长度大于所述字段最短长度阈值minspan,则对该字段的整体字节执行所述第一翻转,所述第一翻转为二进制范围,具体为:将字节1翻转为字节0,且将字节0翻转为字节1;步骤S2

3、以经所述第一翻转后的输入用例为程序输入重新运行所述目标程序,并记录所述各个cmp指令的操作数记录C1,比对所述操作数记录C和所述操作数记录C1;若比对一致,则该字段与所述各个cmp指令不存在比对依赖,对该字段进行丢弃处理,从所述待识别字段集合A中删除所述具有最大字段长度的字段;若比对不一致,则该字段与所述操作数记录C1中发生变动的操作数记录值所对应的cmp指令存在比对依赖,将该字段切分为长度相等的两个字段,并将切分后的两个字段放入所述待识别字段集合A,从所述待识别字段集合A中删除所述具有最大字段长度的字段;步骤S2

4、重复执行所述步骤S2

2至所述步骤S2

3,直到所述待识别字段集合A中的每个字段的长度都不大于所述字段最短长度阈值minspan,从而得到所述候选字段集合A1。4.根据权利要求2所述的一种面向计算机二进制程序的比对依赖识别方法,其特征在于,所述步骤S3具体包括:步骤S3

1、对所述候选字段集合A1中包含的K个字段,基于字段长度从大到小的顺序进行排序,并依次选取字段,对选取到的字段P(j)计算其字段长度L
P(j)
,1≤j≤K;步骤S3

2、对字段P(j)的各个字节依次进行第二翻转,所述第二翻转为:将所述字段P(j)的第i个字节进行二进制翻转,字节1翻转为字节0,或字节0翻转为字节1,1≤i≤L
P(j)
;步骤S3

3、每执行一次所述第i个字节的翻转,以经所述第二翻转后的输入用例为程序
输入重新运行所述目标程序,并记录所述各个cmp指令的操作数记录C2,比对所述操作数记录C和所述操作数记录C2;若比对一致,则所述字段P(j)的第i个字节与所述各个cmp指令不存在比对依赖;若比对不一致,则所述字段P(j)的第i个字节与所述操作数记录C2中发生变动的操作数记录值所对应的cmp指令存在比对依赖,提取所述字段P(j)的第i个字节的位置以及对应的所述操作数记录C2,作为所述比对依赖信息;步骤S3

4、直到所述候选字段集合A1中的各个字段包含的各个字节都经所述第二翻转和所述比对后,对提取到的所有比对依赖信息进行汇总。5.一种面向计算机二进制程序的比对依赖识别系统,其特征在于,所述系统包括:第一处理单元,被配置为:获取输入用例的待识别字段集合A,并以所述输入用例为程序输入运行目标程序,以进一步获取所述目标程序中包含的各个cmp指令的操作数记录C;第二处理单元,...

【专利技术属性】
技术研发人员:陆余良陈泽翰朱凯龙杨国正钟晓峰赵军赵家振袁也
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1