张俊贤
- 作品数:4 被引量:84H指数:2
- 供职机构:北京航空航天大学计算机学院更多>>
- 发文基金:国家自然科学基金国家教育部博士点基金国家重点实验室开放基金更多>>
- 相关领域:自动化与计算机技术更多>>
- 一种重构二进制代码中类型抽象的方法被引量:8
- 2013年
- 重构二进制代码中的类型信息对逆向工程、漏洞分析及恶意代码检测等方面具有重大的意义,由于类型信息在编译过程中被移除,且二进制代码中的低级抽象难以理解,因此类型重构一直被认为是恢复高级抽象遇到的困难问题之一,现有的大多工具对类型重构的准确度不够高.提出一种保守的类型重构方法,针对类型重构引入一种简单的中间语言,基于这种中间语言构造寄存器抽象语法树,并使用寄存器抽象语法树部分解决了基址指针别名问题,可有效收集基本类型和结构体类型的类型约束信息.提出一种判断二进制代码中的循环结构及识别循环变量的方法,可有效收集数组类型的约束信息,并据此生成类型约束,然后通过处理类型约束来重构最终的类型.使用CoreUtils中的15个程序作为测试用例,将该方法与IDA Pro进行对比实验.实验结果表明提出的方法不仅可以高效地重构数据类型,而且在结构体类型重构方面可恢复比IDA Pro多达5倍的数据.对这些数据的人工验证与分析表明,使用该方法重构的类型准确率高.
- 马金鑫李舟军忽朝俭张俊贤郭涛
- 关键词:中间语言别名分析
- 基于动态符号执行的C代码缓冲区溢出检测被引量:1
- 2016年
- 缓冲区溢出是C程序中众多安全隐患的根源之一,以C程序代码为目标对象,提出了一个基于底层虚拟机中间代码的缓冲区溢出检测工具Path Checker.该工具基于动态符号执行方法,使用无量词谓词公式刻画缓冲区操作的安全性质,并利用可满足模型理论求解器技术检验缓冲区操作的安全性.实验结果表明,该工具能有效检测C代码中的缓冲区溢出漏洞,且易于推广至其他高级程序语言代码和其他类型安全漏洞的检测.
- 张俊贤李舟军
- 软件安全漏洞检测技术被引量:76
- 2015年
- 软件安全漏洞检测技术是提高软件质量和安全性、减少软件安全漏洞的重要方法和基本手段,受到学术界和工业界的广泛关注和高度重视.其主要途径包括软件测试、程序分析、模型检验与符号执行等.近年来,综合利用多种研究方法和技术手段来检测软件安全漏洞已成为软件安全领域的研究热点.文中首先回顾了程序分析与软件安全漏洞检测的基本概念、核心问题和传统手段.然后重点介绍该领域的最新进展,主要包括轻量级动态符号执行、自动化白盒模糊测试以及其实现技术和相应的工具.最后,指出了其所面临的挑战和发展趋势.
- 李舟军张俊贤廖湘科马金鑫
- 关键词:安全漏洞白盒测试
- 二进制代码中数组类型抽象的重构方法被引量:1
- 2012年
- 重构二进制代码中的类型抽象,在漏洞检测、逆向工程及恶意代码分析中具有重要的意义。提出一种新的多维数组类型重构方法,先提取汇编代码中的循环语义,再转化成对应的FOREACH式的集合,并针对FOREACH式提出5个规则,用于计算多维数组的维数、大小、边界、基本元素的大小及每维上元素个数等多维数组信息并最终重构出数组类型。使用gcc编译器编译的CoreUtils工具集中的15个程序作为测试用例,与IDA Pro的Hex-ray插件作比较,实验说明:该文提出的方法比IDA Pro重构的数组类型数据多16.3%。
- 马金鑫李舟军忽朝俭张俊贤郭涛
- 关键词:多维数组