[发明专利]一种基于中间语言分析的软件脆弱性测试方法无效
申请号: | 201110380232.0 | 申请日: | 2011-11-25 |
公开(公告)号: | CN102495795A | 公开(公告)日: | 2012-06-13 |
发明(设计)人: | 郭世泽;赵静;吴志勇;牛伟;陈哲;陈渝;肖奇学;曹鼎;杨威;王啸天;赵建芝;房珊瑶;施凡 | 申请(专利权)人: | 中国人民解放军总参谋部第五十四研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/45 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 张利萍;高燕燕 |
地址: | 100083 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明为一种基于中间语言分析的软件脆弱性测试方法,首先采用基于动态二进制插桩方法将程序执行中的上下文信息记录到trace文件中;其次对程序trace进行离线分析,顺次读取每一条指令,并将上下文信息保存到对应数据结构中,将指令机器码转换为中间语言表示;然后针对中间语言进行污点分析,通过分析中间语句,通过判断语句和源操作数类型,判定操作是否会引起污点传播;约束条件收集,基于上述中间语言分析,依据路径搜索策略对布尔方程进行变换,通过约束求解,得到各个路径对应输入值。本发明测试对象的运行平台即可以为PC或服务器,也可以为嵌入式系统。 | ||
搜索关键词: | 一种 基于 中间 语言 分析 软件 脆弱 测试 方法 | ||
【主权项】:
基于中间语言分析的软件脆弱性测试方法,其特征在于,包括以下步骤:第一步:运行目标测试程序,采用基于动态二进制插桩方法将程序执行中的上下文信息记录到trace文件中;第二步:对程序trace进行离线分析,顺次读取每一条指令,并将上下文信息保存到对应数据结构中,将指令机器码转换为中间语言表示;第三步:针对中间语言进行污点分析,包括污点标记和污点传播两个方面;污点标记通过分析Trace中的系统调用,将从外部设备读进内存的数据标记为污染源;污点传播通过分析中间语句,通过判断语句和源操作数类型,判定操作是否会引起污点传播;第四步:约束条件收集:程序发生分支跳转时,污点对分支条件的影响即为约束条件;在中间语言中,如果分支跳转语句的条件被污染,那么收集对应的约束条件;第五步:基于上述中间语言分析,某一条路径对应多个约束条件PC,对各个约束条件进行逻辑合取,生成布尔方程F=PC1∩PC2∩…∩PCn;第六步:依据路径搜索策略对布尔方程进行变换,不同的方程对应程序所走的不同路径,如果方程有解,则存在输入使程序走对应路径,否则该路径不可达;第七步:通过约束求解,得到各个路径对应输入值,基于输入模板,通过在相关位置上修改数据,生成新的测试用例,驱动程序继续执行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军总参谋部第五十四研究所,未经中国人民解放军总参谋部第五十四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110380232.0/,转载请声明来源钻瓜专利网。