#Symbolic Execution
MirChecker: Detecting Bugs in Rust Programs via Static Analysis 阅读

本文主要从以下2点来进行错误的检测:

  • 利用 Rust 编译器在编译时为无法检查的安全条件自动生成的断言,以其为验证条件,检查例如越界访问和整数溢出等问题。
  • Unsafe code 破坏所有权系统,导致悬空指针、共享可变别名等问题。
扩展 Static Analyzer
CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code 阅读

在做开题报告的时候找到了这篇论文,挺巧妙的想法,简单记录一下其思路。

Clang Static Analyzer
Getting Started with LLVM Core Libraries 阅读

TODO.

All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution 阅读

本文详细介绍了动态污点分析(Dynamic Taint Analysis)和前向符号执行(Forward Symbolic Execution)。

Push-Button Verification of File Systems via Crash Refinement 阅读

本文提出了 Yggdrasil,Yggdrasil 是一个工具包,可用于编写具有一键验证功能的文件系统。它通过一种称为崩溃细化的新颖正确性定义实现自动化验证,无需手动注释或证明实现代码,并在出现错误时生成反例。崩溃细化适用于完全自动化的 SMT 推理,并使开发人员能够模块化地实现文件系统以进行验证。 Yggdrasil的开发流程

Scaling symbolic evaluation for automated verification of systems code with Serval 阅读

这篇论文介绍了一个名为Serval的框架,用于通过符号执行来对系统代码进行可扩展的自动化验证。

Serval的核心思想是将开发人员使用Rosette编写指令集解释器并转化为自动化验证器,从而实现系统软件的验证。这一框架通过符号性能分析和优化来识别和修复验证性能瓶颈。作者通过将Serval应用于现有的系统和未经验证的系统中,展示了其在找到系统错误和提高验证效率方面的有效性。

Hyperkernel: Push-Button Verification of an OS Kernel 阅读

修改xv6的内核接口,构建状态机规范和声明式规范以支持SMT(Satisfiability Modulo Theories)求解器来进行验证。通过有限化内核接口,使用硬件虚拟化简化虚拟内存推理,并在LLVM IR级别工作,以避免对C语义进行建模,从而实现了"一键验证"。

Cross-checking Semantic Correctness: The Case of Finding File System Bugs 阅读

主要思路是统计多个文件系统的实现,计算具体文件系统与多个文件系统总体之间的差异性(直方图/信息熵),从而窥探出其文件系统的具体实现在语义上的差异。

账号
访客
本站总访问量 本站访客数