买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于静态符号执行的嵌入式软件分析方法、装置及存储介质_北京邮电大学_202410039234.0 

申请/专利权人:北京邮电大学

申请日:2024-01-11

公开(公告)日:2024-03-19

公开(公告)号:CN117555811B

主分类号:G06F11/36

分类号:G06F11/36;G06F8/75

优先权:

专利状态码:有效-授权

法律状态:2024.03.19#授权;2024.03.01#实质审查的生效;2024.02.13#公开

摘要:本发明提供一种基于静态符号执行的嵌入式软件分析方法、装置及存储介质,该方法包括:输入待测嵌入式程序,基于嵌入式语法识别模块预先构建的嵌入式语法、语法扩展和宏定义的识别逻辑来识别嵌入式指令,生成嵌入式项目配置文件和预处理文件;生成抽象语法树,识别待测嵌入式程序中的嵌入式关键字,在抽象语法树上添加嵌入式关键字并生成关键字语法节点,并构建控制流图;将缺陷检测器加载至执行引擎,置于待测嵌入式程序的控制流入口,执行引擎逐路径符号化地执行待测嵌入式程序;缺陷检测器中含有嵌入式相关缺陷检测逻辑;在执行待测嵌入式程序的过程中,由缺陷检测器检测待测嵌入式程序的缺陷并生成缺陷检测结果。

主权项:1.一种基于静态符号执行的嵌入式软件分析方法,其特征在于,所述方法采用静态分析工具,所述静态分析工具包括执行引擎和缺陷检测器,所述执行引擎配置有嵌入式语法识别模块、配置文件生成模块和嵌入式关键字识别模块,该方法包括预处理阶段和分析阶段:所述预处理阶段包括:输入待测嵌入式程序,基于嵌入式语法识别模块预先构建的嵌入式语法、语法扩展和宏定义的识别逻辑来识别嵌入式指令,并基于识别的嵌入式指令和嵌入式项目构建方式生成嵌入式项目配置文件,并进而生成包含嵌入式指令信息、所述配置文件和语法节点在内的预处理文件,所述嵌入式项目配置文件包含编译命令执行的目录、编译命令参数、源文件及其路径;所述分析阶段包括:根据所述预处理文件和待测嵌入式程序源代码生成抽象语法树,通过关键字识别模块识别待测嵌入式程序源代码中的嵌入式关键字,在所述抽象语法树上添加识别的嵌入式关键字并生成关键字语法节点,进而构建控制流图;将缺陷检测器加载至执行引擎,置于所述待测嵌入式程序的控制流入口,由执行引擎通过路径敏感方式遍历所述控制流图,逐路径符号化地执行待测嵌入式程序,以获得变量或表达式的约束范围并收集程序中的语义信息;所述缺陷检测器中含有基于多种缺陷定义设定的缺陷检测逻辑,所述缺陷检测逻辑包含预先建立的嵌入式相关缺陷检测逻辑,所述嵌入式相关缺陷检测逻辑包括嵌入式语法缺陷检测逻辑和嵌入式关键字相关缺陷检测逻辑;在执行待测嵌入式程序的过程中,由缺陷检测器探索所述待测嵌入式程序中的可达路径,基于多种缺陷定义设定的缺陷检测逻辑,检测待测嵌入式程序的缺陷并生成缺陷检测结果;所述执行引擎还含有支持浮点类型的部分,所述支持浮点类型的部分包括支持浮点类型的符号值表示、支持浮点类型操作的表达式表示、支持浮点类型的内存表示、支持浮点类型的约束求解器和数学函数建模模块,所述数学函数建模模块用于对数学函数进行建模以使得数学函数能够被符号执行引擎识别;所述缺陷检测器中的缺陷检测逻辑还包括基于浮点缺陷定义设定的浮点缺陷检测逻辑;所述方法还包括:逐路径符号化地执行待测嵌入式程序过程中,生成用于记录待测嵌入式程序的每个节点的状态的扩展图;在当前分支路径的输入含有数学函数的情况下,将数学函数与符号值进行绑定,并在数学函数的输入参数为浮点类型参数的情况下,基于函数输出属性对输入的数学函数进行分类,基于分类结果计算输入参数对应的输出值域范围,将该值域范围作为约束范围与数学函数的符号值进行绑定,并基于绑定的值域范围生成分支路径的新的状态,并将生成的新状态添加至扩展图中。

全文数据:

权利要求:

百度查询: 北京邮电大学 基于静态符号执行的嵌入式软件分析方法、装置及存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。