机器代码类型状态检查相关技术解析
1. 类型状态检查概述
类型状态检查是一种流敏感分析,用于跟踪抽象位置之间的别名关系。通过检查访问堆分配存储的程序点处的存储形状图,能够安全地检测是否会发生非法字段访问。例如,根据图 4 中语句 8 之后产生的形状图,分析可以确定语句 9 中对 color 的访问可能是一个内存访问错误,存在此类访问的程序会被安全检查器拒绝。
2. 函数调用总结
- 安全前置和后置条件
- 为了使安全检查分析在可信代码边界处停止,我们使用安全前置和后置条件来总结函数调用。安全前置条件描述了实际参数必须满足的义务,后置条件则提供了调用结果状态的保证。
- 目前,安全前置和后置条件是手动生成的,后续计划研究如何自动创建这些条件。
- 实际参数的义务用占位符抽象位置表示,其大小、访问权限和类型状态规定了实际参数必须满足的详细要求。当形式参数是指针时,其状态描述符可能包含对其他占位符的引用。
- 前置条件表示为 “占位符 : 类型状态” 的列表,后置条件表示为
[别名上下文, 占位符 : 类型状态]的列表。别名上下文是一组潜在别名或非别名关系,用于捕捉实际参数之间的别名如何影响结果状态。 - 安全前置和后置条件还可以包含线性约束,前置条件中的线性约束代表额外的安全要求,后置条件中的线性约束提供调用后内存状态的额外信息。
- 示例
-
<
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



