基于LLVM IR的几款程序分析工…
来源:互联网 发布:网络论坛系统cms 编辑:程序博客网 时间:2024/05/16 05:37
目前看过的几篇论文都是讲在LLVM IR上面做程序分析相关的工作的,下面就它们各自的特点进行总结:
LLMBC主要用于边界模型检测,支持C和C++语言,通过将LLVM intermediaterepresentation转换成为逻辑表达式,使用重写规则化简,转换成为自定义的中间语言ILR,然后将ILR作为SMT求解器的输入进行求解。目前支持的算术上溢和下溢,逻辑和算术移位超过位宽,无效地址的内存访问,无效的内存申请,无效的内存释放,memcpy的内存区域重叠,内存泄露,用户自定义的断言,BMC特定的断言。缺点:还不能支持C++的浮点数、异常处理和运行时类型信息。且不开源,不能追踪缺陷到源代码层(futruework).
LAV是一个用来静态检测程序断言和程序错误的开源工具。它在基本块内部采用符号执行生成一阶逻辑表达式,基本块之间采用谓词逻辑,这样就产生了无循环的多项式验证的条件。其对于循环的处理采用了两种方法:underapproximate和overapproximate两种展开技术。然后将其中的多项式验证调价放入SMT求解器。可解决问题:缓冲区溢出,除零和根据断言检测程序的正确性。可以支持fortran中的一些小问题,缺点还需要对面向对象语言进行支持(futurework),还不支持递归程序和浮点运算。
KLOVER是一个针对C++的符号执行和自动用例生成的工具,主要讲了一些从C到C++的扩展:一些KLEE没有处理的LLVM指令和外部函数,这些指令包括:高级的指令、异常处理、C++RTTI(run-time typeinformation)和内存模型。
阅读全文
2 0
- 基于LLVM IR的几款程序分析工…
- 基于LLVM 中间表示(IR)分析实例
- 一种基于LLVM IR的字符串变形方法
- 通过生成 llvm IR,提高程序的执行性能
- LLVM IR指令的抽象
- LLVM (4) 11.3 LLVM的代码表示:LLVM IR
- LLVM IR
- LLVM IR 语言的形式化描述
- LLVM IR 语法
- LLVM IR is a compiler IR
- 【LLVM】《Getting Started with LLVM Core Libararies》读书笔记——IR和几个重要的类
- LLVM每日谈之二 LLVM IR
- LLVM教程( 三)-- LLVM IR
- (转)LLVM IR 简介
- LLVM IR 调试 常见错误
- llvm IR 语法小例子
- LLVM IR和C/C++函数相互调用时的注意事项
- 转(Dlite)LLVM IR和C/C++函数相互调用时的注意事项
- 关于python使用One Class&nbs…
- 关于一个国外的基于异常的入侵检测…
- 关于PE文件中校验和(checksum)的计…
- Django框架效率问题的解决方法和总…
- 蒙特卡洛估值几种不同的计算方式(Python)
- 基于LLVM IR的几款程序分析工…
- 七、基本数据类型对象包装类
- 云计算IAAS调研报告
- deeplearning权重以及dl4j 权重
- 基于LLVM 中间表示(IR)分析实例
- Clang 静态分析工具的使用
- 关于LLVM IR和Valgrind 中间语言区别
- HTML入门笔记24-HTML表格举例
- 基于卷积神经网络实现图片风格的迁移 2