题名 基于抽象符号表的内存模型
被引量:1
1
作者
代子营
毛晓光
马晓东
王瑞
机构
国防科学技术大学计算机学院
出处
《计算机工程与科学》
CSCD
北大核心
2011年第6期84-90,共7页
基金
国家863计划资助项目(2007AA010301)
文摘
符号执行技术在软件测试和程序验证中发挥着重要作用。如何抽象和处理程序中各种数据类型和语法成分是符号执行必须解决的问题。本文提出抽象符号表的概念,以及基于抽象符号表建模内存的方法。抽象符号表记录可寻址对象的名称、类型、抽象地址和符号值,是一种简单、精确的内存抽象机制。内存模型是所有使用符号执行的技术的前提,本文系统给出了一个面向符号执行的内存模型。基于抽象符号表的内存模型能够统一处理各种数据类型和语法成分,包括函数和类,能够直接处理指针别名问题,不需要额外的别名分析算法。经过一些性能优化处理,基于抽象符号表的内存模型具有较好的性能。
关键词
符号执行
内存 模型
抽象 符号表
程序分析
Keywords
symbolic execution
memory model
abstract symbol table
program analysis
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于抽象内存模型的内存相关漏洞检测方法
被引量:5
2
作者
许健
陈平华
熊建斌
机构
广东工业大学计算机学院
广东技术师范大学自动化学院
出处
《计算机工程与应用》
CSCD
北大核心
2022年第8期96-108,共13页
基金
广东省科技计划项目(2020B1010010010,2019B101001021)
广东省自然科学基金(2019A1515010700)。
文摘
针对现有的内存相关漏洞检测方法中存在依赖指针数据流而导致大量误报漏报、缺乏漏洞特征的形式化描述以及漏洞特征描述不全面的问题,提出一种基于抽象内存模型的内存相关漏洞检测方法。对抽象内存模型进行相关定义;基于抽象内存模型,对内存泄露、重复释放内存和读写释放后的内存这三种与内存相关的漏洞类型的特征进行形式化符号表示;基于代码的控制流图,利用可行路径求解算法得到代码的所有可行路径,并对所有可行路径上的抽象内存进行运行时状态判定,从而检测代码是否存在内存相关的漏洞;使用Juliet Test Suite中的CWE401、CWE415、CWE416三个内存相关漏洞的测试数据集对提出的检测方法进行验证,实验结果表明,相比依赖指针数据流的检测方法,该方法在内存相关漏洞检测的误报率和漏报率均降低。
关键词
内存 相关漏洞检测
抽象 内存 模型
内存 泄漏
重复释放内存
读写释放后的内存
Keywords
memory-related vulnerabilities detection
abstract memory model
memory leak
double free
use after free
分类号
TP391
[自动化与计算机技术—计算机应用技术]
题名 一种面向堆操作程序内存安全性的域敏感内存模型
被引量:2
3
作者
董龙明
王戟
陈立前
刘江潮
机构
国防科技大学计算机学院并行与分布处理国家重点实验室
出处
《计算机科学》
CSCD
北大核心
2012年第9期109-114,151,共7页
基金
国家自然科学基金(61120106006
90818024)资助
文摘
堆操作程序具有通过共享易变数据结构动态操纵堆内存单元的特性,使得内存安全性难以保证。针对这个问题,提出了一种域敏感的k-limit内存抽象模型,以支持动态调整抽象的粒度,取得静态分析在精度和效率上的平衡。分别从框架、性质、操作方面介绍了该内存模型,然后结合内存安全性的定义,在基于该模型的操作语义框架内定义了4种与内存安全性相关的错误类型,最后设计了基于该模型内存安全性检测的数据流迭代算法。
关键词
堆操作程序
内存 安全性
k-limit内存抽象模型
动态可调节
Keywords
Heap-manipulating programs
Memory safety
k-limit abstract memory model
Dynamic adjustment
分类号
TP301
[自动化与计算机技术—计算机系统结构]
题名 单元自动化测试中类的抽象内存模型研究
4
作者
杜婉莹
王雅文
机构
北京邮电大学网络与交换技术国家重点实验室
出处
《计算机测量与控制》
2022年第2期84-94,共11页
基金
国家自然科学基金项目(U1736110)。
文摘
由于面向对象程序具有多态性等复杂特性,在软件单元测试中仅凭静态分析难以判断指针和引用指向对象的具体类型,为了解决这一问题,对类的抽象内存模型进行研究,并提出类的操作语义模拟算法;在路径分析时,通过构建和更新抽象内存模型,从而对变量所属类的范围进行限定;对于单元测试,对基于输入域的随机测试进行优化,提出基于路径的随机测试方法,得到输入变量的类型集合;实验表明,类的抽象内存模型结合操作语义模拟算法能够有效提取出路径中类相关的约束,基于路径的随机测试方法比起基于输入域的随机测试方法能够明显提高测试效率。
关键词
面向对象
单元测试
抽象 内存 模型
符号表
静态分析
测试用例
Keywords
object-oriented
unit testing
abstract memory model
symbol table
static analysis
test case
分类号
TP3
[自动化与计算机技术—计算机科学与技术]
题名 基于存储访问模型的细粒度存储变量识别算法
5
作者
井靖
蒋烈辉
何红旗
张媛媛
机构
信息工程大学计算机科学与技术学院
数学工程与先进计算国家重点实验室
[
出处
《计算机科学》
CSCD
北大核心
2015年第9期171-176,182,共7页
基金
国家自然科学基金项目(61272489)资助
文摘
现阶段对变量的识别通常采用基于特定编译习惯及内存访问地址模式匹配的方法,或基于内存模型和抽象解释的分析方法。前者针对性太强,不具备普适性;后者通常采用损失算法精度的方法来得到结果,这往往会造成识别变量粒度过大、漏识别和误识别率较高。首先定义一种存储访问模型,对存储操作进行细粒度的模拟;然后给出基于存储访问模型的抽象状态生成算法,实现了基于高级中间语言HBRIL的细粒度数据信息(抽象状态)的跟踪和记录;基于这些抽象状态设计了存储区域内的细粒度变量实体识别算法;最后通过测试给出变量识别的细化比例和识别率。由测试结果可以看出,该算法在动态分配变量的识别率方面具有明显优势。
关键词
细粒度内存 访问模型
存储环境
存储操作模拟
变量实体
抽象 状态
Keywords
Fine-grained memory access model, Memory environment, Memory operation simulate, Variant entity, Ab- stract state
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 面向顺序存储结构的数据流分析
被引量:5
6
作者
王淑栋
尹文静
董玉坤
张莉
刘浩
机构
中国石油大学(华东)计算机科学与技术学院
出处
《软件学报》
EI
CSCD
北大核心
2020年第5期1276-1293,共18页
基金
中央高校基本科研业务费专项资金(19CX02028A)
国家自然科学基金(61873281)。
文摘
C程序中数组、malloc动态分配后的连续内存等顺序存储结构被大量使用,但大多数传统的数据流分析方法未能充分描述其结构及其上的操作,特别是在利用指针访问顺序存储结构时,传统的分析方法只关注了指针的指向关系,而未讨论指针可能发生偏移的数值信息,且未考虑发生偏移时可能存在越界的不安全问题,导致了对顺序存储结构分析不精确.针对以上不足,首先对顺序存储结构进行抽象建模,并对顺序存储结构与指针结合使用时的指向关系与偏移量进行有效表示,建立了用于顺序存储结构的抽象内存模型SeqMM;其次,归纳总结C程序中顺序存储结构涉及的指针相关迁移操作、谓词操作及遍历顺序存储结构的循环操作,提出了安全范围判别保证操作安全性;之后,针对函数调用时形参指针引用顺序存储结构与实参的映射过程进行过程间推导规则设计;最后,基于上述分析,提出了一种内存泄漏缺陷检测算法,对5个开源C工程的内存泄漏缺陷进行检测.实验结果表明,所提出的Seq MM能够有效地刻画C程序中的顺序存储结构及其涉及的各种操作,其数据流分析结果能够用于内存泄漏的检测工作,同时在效率和精度之间取得合理的权衡.
关键词
顺序存储结构
数据流分析
抽象 内存 模型
过程间分析
内存 泄漏
Keywords
sequential storage structure
data flow analysis
abstract memory model
inter-prcedural analysis
memory leak
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 C程序非法计算缺陷的静态检测
被引量:1
7
作者
董玉坤
机构
中国石油大学(华东)计算机与通信工程学院
出处
《计算机工程与应用》
CSCD
北大核心
2016年第19期31-36,共6页
基金
山东省自然科学基金(No.BS2015DX017)
中央高校基本科研业务费专项资金(No.15CX02050A)
中国博士后科学基金(No.2015M581032)
文摘
为实现基于静态分析技术自动的检测C程序中的非法计算缺陷,提出了一种基于区域内存模型进行非法计算缺陷检测的方法。对C程序中的非法计算缺陷操作归纳总结出其受限集,以对相应运算进行约束;通过抽象的区域内存模型表示实际的内存存储,实现了基于抽象内存区域内存模型的数据流分析;基于数据流分析的结果,判定C程序中的受限操作是否违背受限集的约束,以实现非法计算缺陷的检测。5个实际工程的检测结果分析表明,该方法可有效地检测出C程序的各类非法计算缺陷。
关键词
缺陷检测
非法计算
静态分析
抽象 内存 模型
Keywords
defect detection
illegal computing
static analysis
abstract memory model
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
题名 基于符号约束集的条件表达式数据流分析
被引量:1
8
作者
董玉坤
机构
中国石油大学(华东)计算机与通信工程学院
出处
《科学技术与工程》
北大核心
2018年第7期172-178,共7页
基金
山东省自然科学基金(No.BS2015DX017)资助
文摘
C程序中的条件表达式是唯一一个由三目运算符构成的表达式;而从语义角度来说是分支语句结构,传统的数据流分析技术难以实现对其精确分析。为实现对条件表达式的精确分析,提出了一种应用区间运算的条件表达式分析方法。首先对条件表达式的语法结构进行分析,以识别不同类型的条件表达式;并采用RSTVL描述程序点上的存储状态;再按照分支语句的语义,通过分析条件表达式中的符号约束集,基于区间运算方法对条件表达式进行数据流分析,得到由RSTVL描述的条件表达式的取值。通过对构造的测试用例与实际工程的测试结果表明,可以精确地分析C程序中的条件表达式。
关键词
条件表达式
数据流分析
抽象 内存 模型
区间运算
符号约束集
Keywords
conditional expression
data flow analysis
abstract memory model
interval computation symbolic constraints
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
题名 形状分析符号执行引擎中的状态合并
9
作者
邓维
李兆鹏
机构
中国科学技术大学计算机科学技术学院
中国科学技术大学先进技术研究院中国科大-国创高可信软件工程中心
出处
《计算机科学》
CSCD
北大核心
2017年第2期209-215,共7页
基金
国家自然科学基金项目(61229201
61170018
91318301)资助
文摘
符号执行技术以其良好的精确度控制和代码覆盖率被广泛应用于静态程序分析和高覆盖率测试用例自动生成。符号执行在分析程序时,以模拟真实的程序执行过程的方式分析程序的数据流和控制流信息,并检查程序可能出现的所有状态,得到程序的分析结果。高精确度和高覆盖率要求对程序状态描述具体而完备,这会导致符号执行过程中常见的状态爆炸问题。首先提出在不同的执行路径上对具体内存状态进行合并的算法,然后对内存模型进行适度的抽象,扩大状态合并算法的适用范围,最后讨论状态合并所带来的实际效果,并提出了状态合并的优化解决方案。所提出的算法在符号执行引擎ShapeChecker上实现,并取得了良好的实验结果。
关键词
符号执行
状态合并
求解代价
内存 模型
状态抽象
Keywords
Symbolic execution
State merging
Query cost
Memory model
State abstraction
分类号
TP311
[自动化与计算机技术—计算机软件与理论]