发明名称 |
一种二进制程序漏洞挖掘方法和系统 |
摘要 |
本发明提供一种二进制程序漏洞挖掘方法,包括步骤:将目标二进制程序转化为汇编语言并进行静态分析;结合静态分析的分析结果对中间语言进行Promela模型建模;构建漏洞模型插入到Promela模型中;引入外部C代码,基于SPIN模拟执行所述Promela模型,检测漏洞。本发明还提供一种二进制程序漏洞挖掘系统,包括预处理模块、代码转化模块和模型检测模块。该方法和系统,引入中间语言BIL作为二进制程序到Promela模型的转化桥梁,实现了对二进制程序的自动化建模,同时利用SPIN的嵌C功能实现模拟执行,并引入外部C代码来弥补模型检测的不足。实验表明,该方法可以有效检测二进制程序的内存破环型漏洞。 |
申请公布号 |
CN105678169A |
申请公布日期 |
2016.06.15 |
申请号 |
CN201511025350.4 |
申请日期 |
2015.12.30 |
申请人 |
西安胡门网络技术有限公司 |
发明人 |
崔艳鹏;胡建伟 |
分类号 |
G06F21/57(2013.01)I |
主分类号 |
G06F21/57(2013.01)I |
代理机构 |
济南信达专利事务所有限公司 37100 |
代理人 |
李世喆 |
主权项 |
一种二进制程序漏洞挖掘方法,其特征在于,包括步骤:步骤A,采用反编译器IDA将二进制程序转化为汇编语言,并基于IDA进行汇编语言层次的静态分析得到函数流图;步骤B,通过中间语言平台BAP将所述汇编语言转化为BIL语言,并结合静态分析的分析结果对所述BIL语言进行Promela模型建模;步骤C,构建漏洞模型,并插入到所述Promela模型中;步骤D,引入外部C代码修补SPIN,并基于修补后的SPIN模拟执行所述Promela模型,检测漏洞;步骤E,输出检测结果和漏洞信息。 |
地址 |
710000 陕西省西安市太白南路373号新长城大厦11502室 |