基于静态和动态混合分析的内存拷贝类函数识别
Identification of Memory Copy Function via Hybrid Static and Dynamic Analysis作者机构:数学工程与先进计算国家重点实验室(信息工程大学)河南郑州450001
出 版 物:《软件学报》 (Journal of Software)
年 卷 期:2024年第35卷第7期
页 面:3291-3313页
核心收录:
学科分类:081203[工学-计算机应用技术] 08[工学] 0835[工学-软件工程] 0812[工学-计算机科学与技术(可授工学、理学学位)] 081202[工学-计算机软件与理论]
基 金:科技委基础加强重点项目(2019-JCJQ-ZD-113)
主 题:静态分析 动态分析 仿真执行 内存拷贝类函数 函数识别
摘 要:缓冲区溢出等内存错误漏洞的产生往往来自对内存拷贝类函数的不当使用.对二进制程序中的内存拷贝类函数进行识别有利于发现内存错误漏洞.目前针对二进制程序中内存拷贝类函数的识别方法主要借助静态分析来提取函数的特征、控制流、数据流等信息进行识别,具有较高的误报率和漏报率.为了提高对内存拷贝类函数识别的效果,提出一种基于静态和动态混合分析的技术CPSeeker.所提方法结合静态分析和动态分析各自的优势,分阶段对函数的全局静态信息和局部执行信息进行搜集,对提取到的信息进行融合分析,进而识别二进制程序中的内存拷贝类函数.实验结果表明,尽管CPSeeker在运行时间上有所增加,但在内存拷贝类函数识别的效果上,其F1值达到了0.96,远优于最新的工作BootStomp、SaTC、CPYFinder以及Gemini,并且不受编译环境(编译器版本、编译器种类、编译器优化等级)的影响.此外,CPSeeker在真实的固件测试中也有更好的表现.